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的主要内容,如果未能解决你的问题,请参考以下文章
从 UITableView 加载 UIWebView 仅第一次有效
在 UIWebView 中使用 HTML 页面,相关页面图像出现奇怪问题,但链接有效