【发布时间】:2019-08-20 07:02:26
【问题描述】:
WKWebView 无法在加载的网页中触发 javascript。
场景: 如果用户点击网站中的图片,它应该得到更新。
如果用户单击图像,则使用 javascript 更新网站上的图像。
- 项目中包含 .js 文件
- 已配置 WKWebview
- 启用 JavaScript
- 在 WKWebview 中添加了脚本
JS 文件中的函数如:
function captureImage(bucket,fileName){
window.webkit.messageHandlers.captureImage.postMessage("showCamera")
}
在 Swift 中访问此函数,例如:
webViewPWA.configuration.userContentController.add(self, name: "captureImage")
///This function handles the event generated by javascript
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
print("Webview Message received: \(message.name) with body: \(message.body)")
if (message.name == "captureImage"){
print("\(message.body)")
let body = message.body
if let action:String = body as? String {
switch action {
case "showCamera":
print("camera image triggering, capture image for JS")
//take necessary action
break
default:
break
}
}
}
return
}
提前致谢!
【问题讨论】:
-
当你点击图片时打印("camera image triggering, capture image for JS") 被执行?
-
是的,它正在执行。
标签: javascript html ios swift progressive-web-apps