UIWebView不加载在其他浏览器中工作的URL



我有一个UIWebView,我想加载这个URL

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

此链接适用于Chrome和Safari的桌面版本,但不适用于iOS模拟器版本的Safari(它说"Safari无法加载页面,因为地址无效")。为了确保这不是一个问题,由于我设置我的UIWebView不正确,我尝试在web视图中加载http://www.apple.com,这工作得很好。

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

如何让URL加载?

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

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

想象一下如果你可以在模拟器中打开它。如果你购买应用程序会发生什么?

我猜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应用程序

最新更新