2011-03-10 44 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