2012-01-17 33 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

相关问题