Chrome打包应用是否可以收听ChromeApp内部由webview触发的事件?
我的ChromeApp在启动时加载了一个webview。我希望能够从webview中激活事件,以便我可以访问本地chrome.app函数。
我现在要使用的功能是“关闭窗口”(因此我可以从ChromeApp内部的网页浏览中关闭ChromeApp)。将来,我希望能够从webview访问Storage API。
答案 0 :(得分:2)
<webview>
支持restricted set of standard DOM events开箱即用。对于你的“关闭窗口”拦截,恰当命名的close event
可能是最合适的。
如果您想在一般情况下在webview访客和您的应用之间建立一种沟通渠道,就像您访问Storage API的第二个用例一样,您有几个选择:
您可以使用<webview>.contentWindow.postMessage
将消息发布到访客页面并以相反的方向返回回复。
您还可以使用<webview>.executeScript
将多条JavaScript注入您的网页浏览访客。例如,通过这种方式,您可以将单击事件处理程序附加到guest虚拟机中的按钮,该按钮将执行您需要在应用程序的执行上下文中执行的操作(当然,为此您的事件处理程序必须是闭包) 。或者,您可以从访客中收集一些信息,并在executeScript
的回调中返回应用。
最后,有<webview>.insertCSS
- 不适合您的需求,但我提到它来完成可用于与webview访客交互或更改的方法集。