WKWebView允许你通过Safari打开外部链接(不同于基本url)。
但是,有时您希望打开WKWebView本身中的所有链接。
例如,假设您有一个基本url "https://trader.finmarkets.com",但您也希望在WKWebView内打开一个链接"https://secure.transactions.finmarkets.com",而不使用将从外部打开的UIApplication.shared.open(url)。
问题是:
How do I wrap my website to open all links on the WKWebview?
(当然,电子邮件和电话号码除外)
谢谢。
发布于 2016-10-08 20:22:55
您可以尝试如下所示:
func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
if navigationAction.navigationType == .LinkActivated {
if let newURL = navigationAction.request.URL &&
UIApplication.sharedApplication().canOpenURL(newURL) &&
UIApplication.sharedApplication().openURL(newURL) {
print(newURL)
print("User clicked on link. Open it internally.")
decisionHandler(.Allow)
} else {
print("Cannot open URL")
}
} else {
print("Not a user click")
}
}您可能需要对此稍加修改才能使其完美工作,但我认为它可能符合您的要求。
https://stackoverflow.com/questions/39930875
复制相似问题