WKScriptMessageHandler
极大地简化了在网页中运行的javascript的消息处理程序。WKScript通过WKScriptMessageHandler
提供了发送和接收消息的更有效的方法。
webView.bridge.register({ (parameters, completion) in
print("print - ", parameters?["message"] ?? "")
}, for: "print")
webView.bridge.register({ (parameters, completion) in
print("print - ", parameters?["message"] ?? "")
completion(.success(["key": "value"]))
}, for: "some_event_need_callback")
webView.evaluateJavaScript("some_method();", completionHandler: { (results, error) in
print(results ?? "")
})
webView.bridge.evaluate("some_method()", completion: { (results, error) in
print(results ?? "")
})
window.bridge.post('print', {message: 'Hello, world'})
// Post Event With Callback
window.bridge.post('print', {message: 'Hello, world'}, (parameters, error) => { <# Handler Parameters Or Error #>})
var unregisterHandler = window.bridge.on('login', (parameters)=> {console.log('User Did Login')})
// To Remove Listener, call `unregisterHandler()`, Or Remove All Listener window.bridge.off('login')
webView.bridge.post(action: "login", parameters: nil)
您可以将 wk.bridge.min.js
包含到您的 html 中,或者您可以使用 WKUserScript
将它注入到 html 中。
您可以从这里下载 wk.bridge.min.js
的完整源代码。
为了运行示例项目,请先克隆仓库,然后从 Example 目录运行 pod install
。
iOS 8.0+
WKBridge 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod "WKBridge"
WKBridge 在 MIT 许可下可用。详见 LICENSE 文件以获取更多信息。