如何从我的应用程序中的UIWebView打开外部链接,但在Safari中?迅速

时间:2015-12-26 15:02:47

标签: ios swift safari uiwebview

我想打开我的应用程序中的所有外部链接 (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
}

2 个答案:

答案 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;
}