我让我的 WKWebview 加载一个网页,如下所示:
class SafariExtensionViewController: SFSafariExtensionViewController, WKNavigationDelegate {
static let shared = SafariExtensionViewController()
var webView: WKWebView!
override func loadView() {
let webConfiguration = WKWebViewConfiguration()
self.preferredContentSize = NSMakeSize(400, 600)
webView = WKWebView(frame: .zero, configuration: webConfiguration)
webView.navigationDelegate = self
view = webView
}
override func viewDidLoad() {
super.viewDidLoad()
let myURL = URL(string: frameUrl)
let myRequest = URLRequest(url: myURL!)
webView.load(myRequest)
os_log("EXTEST the WKWebview has loaded")
}
}
在我的本地主机 Web 服务 js 文件中,我添加了一个发布消息事件
window.parent.postMessage(message, '*')
现在我尝试在我的 swift 代码中监听这个事件,可能吗?
最佳答案
可以对 JavaScript 回调使用react。检查 WKWebView
的 evaluateJavaScript:
方法。
https://developer.apple.com/documentation/webkit/wkwebview/1415017-evaluatejavascript
关于javascript - 如何在WKWebview中监听网页postMessage事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59299245/