人。我正试图在safari中实现从我的webView打开链接。有时它工作得很完美,有时表现出很糟糕的访问。 这是我的代码:
- (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];
}
}
}
答案 0 :(得分:0)
使用[request URL]代替[request mainDocumentURL]
此外,您需要保留(如果不使用ARC)urlWillShow,因为它可能会在您的操作被调用之前被释放。
或者,将UIWebView设为IBOutlet,而不是将urlWillShow存储在ivar中,您可以在操作方法中使用[[self.webView request] URL]。