UIWebView 不加载在其他浏览器中有效的 URL

Posted

技术标签:

【中文标题】UIWebView 不加载在其他浏览器中有效的 URL【英文标题】:UIWebView does not load URL which works in other browsers 【发布时间】:2013-06-17 01:13:52 【问题描述】:

我有一个UIWebView,我想将这个 URL 加载到其中

https://itunes.apple.com/us/album/blurred-lines-feat.-t.i.-pharrell/id621507456.

此链接适用于桌面版 Chrome 和 Safari,但不适用于 ios 模拟器版 Safari(它显示“Safari 无法加载页面,因为地址无效”)。为了确保这不是由于我的UIWebView 设置不当而导致的问题,我尝试在网络视图中加载http://www.apple.com,并且效果很好。

另外,由于某种奇怪的原因,链接工作了一次,然后我重新启动了应用程序,但它没有工作。这种情况发生了好几次。

如何获取要加载的 URL?

【问题讨论】:

UIWebView to view self signed websites (No private api, not NSURLConnection) - is it possible?的可能重复 【参考方案1】:

iTunes store 无法在模拟器中打开。在您的设备上运行它。

原因很简单,Apple 不允许你在模拟器中打开它。

想象一下,如果你可以在模拟器中打开它。如果您购买应用程序会怎样?

【讨论】:

【参考方案2】:

我猜 iTunes 链接将被检测为应用程序而不是下降链接。因此,在 iPhone 中 UIWebView 不会加载 URL。但是解决方法就在那里。实现下面的UIWebview delegate方法

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)req navigationType:(UIWebViewNavigationType)navigationType 
    if([req.URL.absoluteString  hasPrefix:@"https://itunes.apple.com"])
        [[UIApplication sharedApplication] openURL:req.URL];
        return NO;
    
    return YES;

这种方法的唯一问题是,这会将正在运行的应用程序发送到后台并打开iOS的默认iTunes应用程序。

【讨论】:

以上是关于UIWebView 不加载在其他浏览器中有效的 URL的主要内容,如果未能解决你的问题,请参考以下文章

首次安装应用时 UIWebview 不加载内容

从 UITableView 加载 UIWebView 仅第一次有效

在 UIWebView 中使用 HTML 页面,相关页面图像出现奇怪问题,但链接有效

在 UIWebView 中打开一些项目,在外部浏览器中打开其他项目

UIWebView忽略表单模式/必需规则

URL 不会在 UIWebView 中加载,但会加载到 safari 浏览器中