2012-01-17 32 views
-1

夥計們。我試圖在safari中實現從我的webView中打開鏈接。有時候它很完美,有時會顯示不好的訪問。 這是我的代碼:一些未知的事情,在Safari中打開URL

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType { 
    urlWillShow = [request mainDocumentURL]; 
    return YES; 
} 
- (IBAction)openInSafari { 
     NSLog(@"Will try to open in safari link: %@", [urlWillShow absoluteString]); 
    if ([[urlWillShow scheme] isEqualToString:@"http"] || [[urlWillShow scheme] isEqualToString:@"https"]) { 
     BOOL canLoad = [[UIApplication sharedApplication] canOpenURL:urlWillShow]; 
     if (canLoad == YES) { 
      [[UIApplication sharedApplication] openURL:urlWillShow]; 
     } 
    } 
} 
+3

沒有足夠的信息進行調試。哪一行有問題? – 2012-01-17 12:26:00

+0

檢查您在獲取BAD_ACCESS的那些「有時」期間是否確實在urlWillShow中有URL。 – sElanthiraiyan 2012-01-17 12:28:48

+0

您是使用ARC還是手動保留/釋放? – 2012-01-17 12:47:09

回答

0

使用[URL請求]而不是[要求mainDocumentURL]

此外,您還需要保留(如果不使用ARC)urlWillShow其可能被釋放之前,你的行動調用。

或者,使UIWebView成爲IBOutlet,而不是將urlWillShow存儲在ivar中,您可以在您的操作方法中使用[[self.webView request] URL]。

+0

[請求網址]中顯示的另一個網址。例如。我需要這個網站:habr.ru,但[請求網址]將是另一個,因爲它包含廣告,這是加載後的網站... – werbary 2012-01-17 14:19:31

相關問題