【发布时间】:2010-02-06 19:21:03
【问题描述】:
我目前正在开发一个 iPhone 应用程序,并希望实现从 Internet 下载文件(特别是 pdf、mp3、doc 和 ppt 文件)的功能。我已经创建了 UIWebView,但是想知道在 webview 中链接到文件时捕获文件的最佳方式,然后将它们下载到文档目录中的指定文件夹。
任何建议/教程等链接将不胜感激。
干杯
【问题讨论】:
我目前正在开发一个 iPhone 应用程序,并希望实现从 Internet 下载文件(特别是 pdf、mp3、doc 和 ppt 文件)的功能。我已经创建了 UIWebView,但是想知道在 webview 中链接到文件时捕获文件的最佳方式,然后将它们下载到文档目录中的指定文件夹。
任何建议/教程等链接将不胜感激。
干杯
【问题讨论】:
已编辑
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 文件夹中的文件。
【讨论】:
已经找到捕获链接的方法。这是一个委托方法,因此请确保所有挂钩都已到位:
- (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;
}
完成后将发布我的最终代码。
【讨论】:
要在 UIWebView 中捕获链接,请实现 webView:shouldStartLoadWithRequest:navigationType: 委托方法,并在看到要处理的链接时返回 NO。
有关如何在 iPhone 上使用 HTTP 下载的示例代码,请参阅SimpleURLConnections 示例项目。
【讨论】: