背景:使用Xcode 8.3,swift 3,为ios版本8编译
我有一个非常简单的应用,只是使用webview来显示我的网站。我的网站有外部链接(使用hrefs),我想在用户点击时在Safari中打开,而不是在我应用的网页浏览中。
我发现许多类似的问题都有非常相似的答案。我试图将我找到的答案合并,然而,我不能让我的工作。
希望得到一些清晰度。
这是我的代码:
ViewController代码
import UIKit
class ViewController: UIViewController, UIWebViewDelegate {
@IBOutlet weak var siteView: UIWebView!
override func viewDidLoad() {
super.viewDidLoad()
siteView.delegate = self
// Do any additional setup after loading the view, typically from a nib.
let url = URL(string: "myurlgoeshere")
siteView.loadRequest(URLRequest(url: url!))
}
AppDelegate代码
func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest,
navigationType: UIWebViewNavigationType) -> Bool {
if navigationType == UIWebViewNavigationType.linkClicked {
guard let url = request.url else { return true }
UIApplication.shared.openURL(url) //ios 8 version of open
return false
}
return true
}
当我运行上面的代码并点击链接时,它们会一直在我的应用中打开。
我在ios模拟器中运行我的代码,所以不确定是否保持链接不在Safari中打开。
提前谢谢。