我需要我的 swift 类与它引用的 wkwebview 中的 html 和 javascript 进行交互,特别是向它提供一个变量。
我想我会首先尝试让 webview 使用 getElementByID 按照此处的代码检索某些内容。但是,它不起作用。
这是代码:
HTML file
<div id="username">@twostraws</div>
Swift File
let webView = WKWebView()
override func viewDidLoad() {
super.viewDidLoad()
if let url = Bundle.main.url(forResource: "myHTML", withExtension: "html") {
webView.loadFileURL(url, allowingReadAccessTo: url.deletingLastPathComponent())
}
webView.evaluateJavaScript("document.getElementById('username').innerText") { (result, error) in
if let result = result {
print("what is in div",result)
}
else {
print("didn't find it")
}
}
override func loadView() {
self.view = webView
}
webview 正在加载,但是evaluateJavascript 没有检索到任何内容。
编辑:
这是错误信息:
A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=TypeError: null is not an object (evaluating 'document.getElementById('username').innerText'), WKJavaScriptExceptionColumnNumber=32, WKJavaScriptExceptionSourceURL=about:blank, NSLocalizedDescription=A JavaScript exception occurred})
感谢您的任何建议。