2011-03-10 43 views
0

我有一个带有一些数据和小型webView的iPhone应用程序。无论何时用户触摸webview,都应该打开一个Safari浏览器。iPhone在Safari中从webView中打开内容

问题是 - 当我关闭打开的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) conditon,但与第一次接触是在全屏浏览器中打开我的小网页视图内,而不是之前已经。

任何想法如何解决它?提前致谢!

+0

您是否尝试从该委托方法返回'NO'? – Eimantas 2011-03-10 11:23:20

+0

当我这样做时,什么都没有出现在我的webview中:) – yosh 2011-03-10 11:26:27

回答

1

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

1

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

当应用程序退出时,您可以在applicationDidEnterBackground中设置一个标志,并在applicationDidEnterForeground中检查它并使用该标志来防止openURL请求,使其不会被调用两次。虽然这有点麻烦,但我认为你应该更好地调查第二次调用shouldStartLoadWithRequest的是什么。

+0

可能是[self.webViewTwo loadHTMLString:myWebsiteCode baseURL:nil];在viewDidLoad里面... – yosh 2011-03-10 13:18:22