【发布时间】:2012-05-23 12:08:33
【问题描述】:
我有一个UIWebView,它会加载一个 HTML 页面,其中包含一些指向 App Store 的链接(<a herf="http://itunes/bla/bla/bla"> 类型的链接)。
单击一个链接,打开外部 Safari,然后打开外部 App Store 应用程序并成功转到正确的页面。
如果你然后点击主页按钮并返回跳板并再次点击应用程序,它将短暂打开到显示的UIWebView,然后再次跳转到外部Safari和外部App Store应用程序。
如果您再次返回应用程序,它会留在应用程序中。
所以发生的情况是,从UIWebView HTML 页面打开外部浏览器链接后返回应用程序,然后会再次跳转回同一个链接。
有人知道是什么原因造成的吗?
我使用的是 Xcode 4.2.1,它发生在模拟器和实际设备上(iPad 1 和 iOS 4.3)。
编辑 - 解决方案:
好的,这是我解决问题所必须做的(感谢 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;
}
【问题讨论】:
标签: iphone objective-c ios cocoa-touch ios4