我有一个UIWebView
,它会加载一个HTML页面,其中包含指向App Store(<a herf="http://itunes/bla/bla/bla">
类型链接)的链接。
单击链接,打开外部Safari,然后打开外部App Store应用程序并成功转到正确的页面。
如果您然后单击主页按钮并返回跳板并再次单击应用程序,它将暂时打开显示的UIWebView
,然后再次跳转到外部Safari和外部App Store应用程序。
如果你再次回到应用程序,它会留在应用程序中。
所以发生的事情是从UIWebView
HTML页面打开外部浏览器链接后返回应用程序,然后再次跳回到同一链接。
任何人都有任何想法可能导致这个?
使用Xcode 4.2.1,它发生在模拟器和实际设备上(iOS 1的iPad 1)。
编辑 - 解决方案:
好的,这就是我必须要解决的问题(感谢Ben的回复,让我看到了正确的区域):
这是我原来的方法:
- (BOOL)webView:(UIWebView *)_webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if (didLoad) { //Do not jump to URL when view first loads
return YES;
}
[[UIApplication sharedApplication] openURL:[request URL]];
return YES;
}
这是我的固定方法,不会继续跳转到URL:
- (BOOL)webView:(UIWebView *)_webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if (didShowURL) { //Do not jump to URL when returning to app
didShowURL = 0;
return NO;
}
if (didLoad) { //Do not jump to URL when view first loads
return YES;
}
didShowURL = 1;
[[UIApplication sharedApplication] openURL:[request URL]];
return YES;
}
答案 0 :(得分:2)
我建议您使用itms-apps://
协议作为链接。这将直接将用户发送到App Store中的应用程序,而无需重定向。
NSURL *appStoreLink = [NSURL URLWithString:@"itms-apps://itunes.apple.com/us/app/instagram/id389801252?mt=8"];
[[UIApplication sharedApplication] openURL:appStoreLink];
答案 1 :(得分:0)
您的网页视图正在重新加载到其最后一页(应用商店页面),并会自动将用户重定向。您只需要确保在重新加载应用时,它不会再次尝试加载应用商店链接。
根据您的应用设置,您可以使用
viewWillAppear
每次将视图放到前面时,使用链接重新加载原始HTML页面。