Ios 从未调用方法decidePolicyForNavigationAction,WKWebView Swift
我正在开发一个应用程序,它使用Swift中的WKWebView显示网页。我需要禁用用户选择和标注,因为web加载了一个图形,而我找不到任何方法使用WKWebView来实现这一点 我正在尝试使用此代码,但不幸的是,似乎从未调用此方法。你知道我的代码的哪一部分可能是错误的,或者我能做什么Ios 从未调用方法decidePolicyForNavigationAction,WKWebView Swift,ios,swift,xcode,webview,wkwebview,Ios,Swift,Xcode,Webview,Wkwebview,我正在开发一个应用程序,它使用Swift中的WKWebView显示网页。我需要禁用用户选择和标注,因为web加载了一个图形,而我找不到任何方法使用WKWebView来实现这一点 我正在尝试使用此代码,但不幸的是,似乎从未调用此方法。你知道我的代码的哪一部分可能是错误的,或者我能做什么 public func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationActio
public func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
if (navigationAction.navigationType == .linkActivated){
decisionHandler(.allow)
} else {
decisionHandler(.cancel)
}
}
这是我的完整代码:
import WebKit
import UIKit
class ViewController: UIViewController, WKNavigationDelegate, WKUIDelegate {
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "http://danfg95glucose.azurewebsites.net")
let request = URLRequest(url: url!)
webView.navigationDelegate = self
self.webView.uiDelegate = self
webView.load(request)
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("loaded")
}
func webView(_ webView: WKWebView, createWebViewWith configuration: WKWebViewConfiguration, for navigationAction: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? {
if navigationAction.targetFrame == nil {
webView.load(navigationAction.request)
}
return nil
}
public func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
if (navigationAction.navigationType == .linkActivated){
decisionHandler(.allow)
} else {
decisionHandler(.cancel)
}
}
}
非常感谢您的回复。我正在学习swift编程,我有点迷路。忘了吧_
public func webView(_ webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
if (navigationAction.navigationType == .linkActivated){
decisionHandler(.allow)
} else {
decisionHandler(.cancel)
}
}
忘记_
public func webView(_ webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
if (navigationAction.navigationType == .linkActivated){
decisionHandler(.allow)
} else {
decisionHandler(.cancel)
}
}
谢谢你的帮助。我添加了u,但似乎在web完成加载时没有调用该函数。您知道我能做什么吗?每当遇到服务器重定向时,在开始加载之前,都会调用此方法。谢谢你的帮助。我添加了u,但似乎在web完成加载时没有调用该函数。您知道我能做什么吗?每当遇到服务器重定向时,在开始加载之前,都会调用此方法。来自文档