Chrome打包应用程序如何与webview进行交互(监听从中发出的事件)

时间:2014-02-07 10:13:20

标签: webview google-chrome-app

Chrome打包应用是否可以收听ChromeApp内部由webview触发的事件?

我的ChromeApp在启动时加载了一个webview。我希望能够从webview中激活事件,以便我可以访问本地chrome.app函数。

我现在要使用的功能是“关闭窗口”(因此我可以从ChromeApp内部的网页浏览中关闭ChromeApp)。将来,我希望能够从webview访问Storage API。

1 个答案:

答案 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访客交互或更改的方法集。