iPhone在Safari中打开webView中的内容

时间:2011-03-10 11:20:44

标签: iphone cocoa uiwebview webview

我有一个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中打开而不是已经在全屏浏览器中。

任何想法我该如何解决?提前谢谢!

2 个答案:

答案 0 :(得分:1)

你是否在shouldStartLoadWithRequest中设置了一个断点:看看为什么在重新打开应用程序时再次调用它?我很惊讶它是。

当app退出时,你可以在applicationDidEnterBackground中设置一个标志,并在applicationDidEnterForeground中检查它,并使用它来保护openURL请求,这样它就不会被调用两次。虽然这有点乱,但我认为你最好再次调查第二次调用shouldStartLoadWithRequest的内容。

答案 1 :(得分:1)

必须转到app-Info.plist文件中“应用程序不在后台运行”的选项。它解决了从背景回来后开始使用safari的应用程序的问题..