【发布时间】:2015-05-21 07:39:26
【问题描述】:
我开发了一个网站,我打算在 Chrome 应用程序中的 web 视图中显示该网站。这很好用。
现在,我想使用网站上的 postMessage 将消息从 webview 发送到包含的 Chrome 应用程序。这是通过 webview 中的top.postMessage 完成的。
我尝试了以下事件监听器:
webView.contentWindow.addEventListener('message', messageHandler);
webView.addEventListener('message', messageHandler);
window.addEventListener('message', messageHandler);
document.addEventListener('message', messageHandler);
我已经成功实现了以下事件监听器。所有这些都按预期工作:contentload、dialog 和 consolemessage。
除非我可以让它工作,否则我正在考虑使用 consolemessage 将消息从 webview 发送到容器 - 我觉得这很不吸引人,我怀疑在不使用开发者模式时它不会工作。
【问题讨论】:
-
你有没有考虑过使用
"externally_connectable"路由,如果它是针对特定网页的? -
@Xan 我有,但我很不情愿。该网站有时可以在浏览器窗口中打开,也可以同时通过 Chrome 应用程序打开。 “应用程序”会从 Chrome 中的一个选项卡以及它自己的 web 视图中接收消息,我必须处理这个问题 - 让代码再次变得更丑陋。
标签: javascript google-chrome-extension google-chrome-app cordova-chrome-app