【问题标题】:Download Files within iPhone app在 iPhone 应用程序中下载文件
【发布时间】:2010-02-06 19:21:03
【问题描述】:

我目前正在开发一个 iPhone 应用程序,并希望实现从 Internet 下载文件(特别是 pdf、mp3、doc 和 ppt 文件)的功能。我已经创建了 UIWebView,但是想知道在 webview 中链接到文件时捕获文件的最佳方式,然后将它们下载到文档目录中的指定文件夹。

任何建议/教程等链接将不胜感激。

干杯

【问题讨论】:

    标签: iphone pdf file uiwebview


    【解决方案1】:

    已编辑
    UIWebView 不能下载 pdf, mp3, doc, ppt 等...只用来显示网页。

    您需要使用Quartz 2D来绘制pdf文档。您需要Media Player framework 才能播放歌曲、有声读物。

    要从服务器下载文件,您可以尝试使用 [NSData initWithContentsOfURL] 方法。

    一个例子:

    NSString *strImagePathURL = [NSString stringWithFormat:@"http://foo.com/%d.png", item];
    NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:strImagePathURL]];
    

    您可以稍后决定如何处理 NSData,您可以使用 [NSData writeToFile] 方法将其保存到 Documents 文件夹中的文件。

    【讨论】:

    • 感谢您的回答,但如果您阅读了这个问题,我会问如何使用 UIWebView 从互联网下载它们。问题更多的是如何捕获具有指定文件扩展名的文件的链接。
    • 您还可以在 UIWebView 中处理 mp3 和 pdf。
    • 嗨杰克,如果你想下载特定类型的文件,你还是需要自己处理。据我所知,在 Safari 中保存文件是不可能的。您可以捕获用户单击的链接并创建 NSData 以手动下载它们。
    【解决方案2】:

    已经找到捕获链接的方法。这是一个委托方法,因此请确保所有挂钩都已到位:

    - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
    
        //CAPTURE USER LINK-CLICK.
        if (navigationType == UIWebViewNavigationTypeLinkClicked) {
            NSURL *URL = [request URL]; 
            NSLog(@"url is: %s ", URL);
        }   
        return YES;   
    }
    

    From here

    完成后将发布我的最终代码。

    【讨论】:

      【解决方案3】:
      1. 要在 UIWebView 中捕获链接,请实现 webView:shouldStartLoadWithRequest:navigationType: 委托方法,并在看到要处理的链接时返回 NO

      2. 有关如何在 iPhone 上使用 HTTP 下载的示例代码,请参阅SimpleURLConnections 示例项目。

      【讨论】:

        猜你喜欢
        • 2010-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多