我想打开我的应用程序中的所有外部链接
(UIWebView
)不在应用内,但在Safari中。我怎样才能做到这一点?
我已经实现了UiWebViewDelegate。
我的问题的工作解决方案:
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if navigationType == UIWebViewNavigationType.LinkClicked{
UIApplication.sharedApplication().openURL(request.URL!)
return false
}
return true
}
答案 0 :(得分:6)
@Leo Dabus非常感谢这个提示,但我想我有更好的解决方案:
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
if navigationType == UIWebViewNavigationType.LinkClicked{
UIApplication.sharedApplication().openURL(request.URL!)
return false
}
return true
}
这个很完美。
答案 1 :(得分:0)
目标-c的解决方案: -
在ViewController.h
@interface ViewController : UIViewController<UIWebViewDelegate>
ViewController.m
中的
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
if (navigationType == UIWebViewNavigationTypeLinkClicked){
NSURL *url = request.URL;
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
return NO;
}
return YES;
}