我有一个iPhone应用程序,包含一些数据和一个小的webView。每当用户触摸webview时,都应该打开Safari浏览器。
问题是 - 当我关闭打开的Safari并再次启动我的应用程序时,它会直接打开全屏Safari。我该如何预防?
-(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSURL* url = [request URL];
[[UIApplication sharedApplication] openURL:url];
return YES;
}
在我使用与if (UIWebViewNavigationTypeLinkClicked == navigationType)
条件相同的代码之前,第一次触摸是在我的小型webview中打开而不是已经在全屏浏览器中。
任何想法我该如何解决?提前谢谢!
答案 0 :(得分:1)
你是否在shouldStartLoadWithRequest中设置了一个断点:看看为什么在重新打开应用程序时再次调用它?我很惊讶它是。
当app退出时,你可以在applicationDidEnterBackground中设置一个标志,并在applicationDidEnterForeground中检查它,并使用它来保护openURL请求,这样它就不会被调用两次。虽然这有点乱,但我认为你最好再次调查第二次调用shouldStartLoadWithRequest的内容。
答案 1 :(得分:1)
必须转到app-Info.plist文件中“应用程序不在后台运行”的选项。它解决了从背景回来后开始使用safari的应用程序的问题..