ios – 如何在Xcode的Safari中打开webview中的任何链接?
发布时间:2020-12-15 01:51:18 所属栏目:百科 来源:网络整理
导读:我的应用程序中有一个webview,我希望Web视图中的任何链接都可以在safari中打开而不是Web视图本身. 我正在使用swift对应用程序进行编码,并且已经看到了Objective-c的一些答案,但没有看到swift的答案. 有谁知道我该怎么做呢? 解决方法 这在Swift和Obj-C中完全
我的应用程序中有一个webview,我希望Web视图中的任何链接都可以在safari中打开而不是Web视图本身.
我正在使用swift对应用程序进行编码,并且已经看到了Objective-c的一些答案,但没有看到swift的答案. 有谁知道我该怎么做呢? 解决方法
这在Swift和Obj-C中完全相同:
首先,声明您的视图控制器符合UIWebViewDelegate class MyViewController: UIWebViewDelegate 然后在View Controller中实现 // Swift 1 & 2 func webView(webView: UIWebView,shouldStartLoadWithRequest request: NSURLRequest,navigationType: UIWebViewNavigationType) -> Bool { switch navigationType { case .LinkClicked: // Open links in Safari UIApplication.sharedApplication().openURL(request.URL) return false default: // Handle other navigation types... return true } } // Swift 3 func webView(_ webView: UIWebView,shouldStartLoadWith request: URLRequest,navigationType: UIWebViewNavigationType) -> Bool { switch navigationType { case .linkClicked: // Open links in Safari guard let url = request.url else { return true } if #available(iOS 10.0,*) { UIApplication.shared.open(url,options: [:],completionHandler: nil) } else { // openURL(_:) is deprecated in iOS 10+. UIApplication.shared.openURL(url) } return false default: // Handle other navigation types... return true } } 最后,设置UIWebView的委托,例如,在viewDidLoad或Storyboard中: webView.delegate = self (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |