Ios 如何在cordova phonegap构建中使用带有wkwebview插件的postmessage
我正在phonegap应用程序中使用cordova插件wkwebview引擎打开网页:Ios 如何在cordova phonegap构建中使用带有wkwebview插件的postmessage,ios,cordova,wkwebview,postmessage,Ios,Cordova,Wkwebview,Postmessage,我正在phonegap应用程序中使用cordova插件wkwebview引擎打开网页: ref = window.open(url, '_self', 'location=no,toolbar=no'); 到目前为止,一切正常,页面显示正常,iOS日志显示应用程序正在使用wkWebView,显示速度比使用UIWebView快得多 我想从WkWebView中的页面发送postmessage,并在设备上运行的我的index.js中处理该消息。从WkWebView问题页面,我将以下代码复制到
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>
打招呼
window.addEventListener(“消息”,函数(事件){
控制台日志(“IFRAME”);
console.log(事件);
},假);
函数sayHello(){
parent.postMessage(“你好!”,“*”)
}
我编译/安装应用程序并运行。我点击按钮,调试器显示parent.postMessage执行。现在我准备在设备端编写消息处理程序
复制的代码显然假定它在iframe中运行,我假定它是由Phonegap启动的main index.html
在尝试iframe方法之前,我想知道:有没有人找到一种不用iframe就可以使用postmessage在index.js和WkWebView之间进行通信的方法
例如,my window.open创建对象“ref”。我可以简单地在“ref”上添加一个事件侦听器来捕获消息吗?如果是这样,那么我怀疑在调用“parent.postmessage”时需要使用“parent”以外的其他内容。那会是什么
建议很好,例子更好
请注意,此应用程序尚未要求深入研究本机代码。。。Phonegap构建在创建我的可安装程序方面做得很好。如果可能的话,我希望保持这种状态。您是否使用浏览器核心插件中的cordova插件?嗨,Shazron,谢谢您的提问。我确实有iframe版本的消息功能,所以尽管我仍然对这个主题感兴趣,但它现在对我来说优先级较低。我确实在config.xml中列出了inappbrowser作为插件。我试着只在Android上使用它:if(device.platform==“iOS”){ref=window.open(url,'.'self','location=no,toolbar=no');}或者{ref=cordova.InAppBrowser.open(url,'.'u blank',location=no,toolbar=no');}您是否正在使用AppBrowser核心插件中的cordova插件?嗨,Shazron,谢谢您的提问。我确实有iframe版本的消息功能,所以尽管我仍然对这个主题感兴趣,但它现在对我来说优先级较低。我确实在config.xml中列出了inappbrowser作为插件。我试着只在Android上使用它:if(device.platform==“iOS”){ref=window.open(url,'.'self','location=no,toolbar=no');}或者{ref=cordova.InAppBrowser.open(url,'.'u blank',location=no,toolbar=no');}