我在phonegap应用中使用cordova-plugin-wkwebview-engine打开网页:
ref = window.open(url, '_self', 'location=no,toolbar=no');
到目前为止一切正常,页面显示正常,iOS日志说应用程序正在使用wkWebView,显示速度比使用UIWebView快得多。
我想从WkWebView中的页面发送postmessage并处理设备上运行的index.js中的消息。在WkWebView问题页面中,我将以下代码复制到网页中:
<button type="button" name="button" onclick="sayHello()">Say hello</button>
<script type="text/javascript">
window.addEventListener("message",function(event){
console.log("IFRAME");
console.log(event);
}, false);
function sayHello(){
parent.postMessage("Hello!","*")
}
</script>
我编译/安装应用程序并运行。我点击按钮,调试器说parent.postMessage执行。所以现在我已准备好在设备端编写消息处理程序。
复制的代码显然假设它在iframe中运行,我假设是Phonegap发起的主要index.html。
在尝试iframe方法之前,我想知道:有没有人找到一种方法来使用postmessage在index.js和WkWebView之间进行通信而不依靠iframe?
例如,我的window.open创建了对象&ref;#ref;&#39;。我可以简单地在&#39; ref&#39;上添加一个事件监听器。捕获消息?如果是这样,那么我怀疑我是否需要使用除父母以外的其他东西&#39;在致电&#39; parent.postmessage&#39;。那会是什么?
建议很好,例子更好。
请注意,此应用尚未需要深入研究本机代码... Phonegap Build一直在创建我的可安装程序。如果可能的话,我希望保持这种状态。