gpt4 book ai didi

ios - 向 WKWebView 发送消息抛出错误

转载 作者:行者123 更新时间:2023-11-28 05:37:30 25 4
gpt4 key购买 nike

我正在使用 WKWebView 在我的 Safari 应用程序扩展的弹出窗口中加载 HTML。我正在尝试使用 webView.evaluateJavaScript("myFunction()") 向此页面发送消息,但失败并显示错误消息 EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)

我认为该页面最初未加载到 webView 中,因此会抛出此错误,但此处并非如此。该页面已完全加载,但由于某种原因出现此错误。这是我的代码。

@IBOutlet var webView: WKWebView!

func webView(_ webView: WKWebView,didFinish navigation: WKNavigation!) {
webView.evaluateJavaScript("myFunction()", completionHandler: nil)
}

override func viewDidLoad() {
super.viewDidLoad()
webView.configuration.userContentController.add(self, name: "popup")
webView.configuration.userContentController.add(self, name: "print")
webView.navigationDelegate = self
view.addSubview(webView!)
self.view = webView

if let url = Bundle.main.url(forResource: "MyPopup", withExtension: "html") {
webView.loadFileURL(url, allowingReadAccessTo: url.deletingLastPathComponent())
}
}

我尝试检查 completionHandler 中的错误,但它不会去那里。有什么想法吗?

最佳答案

我相信你需要使用主线程来执行 webView 中的 JS。尝试在 DispatchQueue.main.async { } 中包装对 webView.evaluateJavaScript() 的调用。

关于ios - 向 WKWebView 发送消息抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58166604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com