1

我需要我的 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})

感谢您的任何建议。

4

0 回答 0