在UIWebView中检测下载 [英] Detecting Download in UIWebView

查看:66
本文介绍了在UIWebView中检测下载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个编程的 UIWebView ,它用于浏览存储在我服务器上的iPhone风格的网站。在这个网站上,有一些用户可以下载到我的应用程序中的文件链接。现在,我正试图通过以下方式检测到:

I have a programatically crated UIWebView, and it is used to browse a iPhone-style site stored on my server. In this website, there are a few links to files users can download into my application. Right now, I'm trying to detect this with:

- (BOOL) webView:(UIWebView *) webView shouldStartLoadWithRequest:(NSURLRequest *) request navigationType:(UIWebViewNavigationType) navigationType
{
    url = [request URL];
    NSString *mimeType = [request valueForHTTPHeaderField:@"Content-Type"];
    NSLog(@"Content-type: %@", mimeType);
    if(mimeType == @"application/zip" || mimeType == @"application/x-zip" || mimeType == @"application/octet-stream")
    {
        NSLog(@"Downloading file!");
        [NSThread detachNewThreadSelector:@selector(download:) toTarget:self withObject:@"/tmp/file.ipa"];
        return NO;
    }
    return YES;
}

但是,调用此方法时,内容类型标题几乎总是(null),所以我永远无法下载文件。

However, when this method is called, the content-type header is almost always (null), so I never am able to download a file.

你会如何正确地做到这一点?

How would you do this correctly?

推荐答案

您正试图从NSURLRequest中检测尚未制作的Content-Type。在使用NSURLConnection发出请求之前,您不会知道Content-Type。在这种情况下,我可能只是看一下URL路径的文件扩展名。

You're trying to detect a Content-Type from an NSURLRequest which has not yet been made. You won't know the Content-Type until after the request is made using NSURLConnection. In this case, I'd probably just look at the file extension of the URL path.

这篇关于在UIWebView中检测下载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆