Chrome 打包应用程序是否可以监听 Chrome 应用程序内的 Web View 触发的事件?
我的 ChromeApp 在启动时加载 WebView 。我希望能够从 web View 触发事件,以便我可以访问本地 chrome.app 功能。
我现在想使用的功能是“关闭窗口”(这样我就可以从 ChromeApp 内部的 webview 关闭 ChromeApp)。将来我希望能够从 webview 访问存储 API。
最佳答案
<webview>
支持restricted set of standard DOM events盒子外面。对于您的“关闭窗口”拦截,恰本地命名为 close event
可能是最合适的。
如果您想在一般情况下在 Webview guest 和您的应用程序之间建立一种通信 channel ,就像在访问 Storage API 的第二个用例中一样,您有几个选择:
您可以使用
<webview>.contentWindow.postMessage
将消息发布到访客页面并以相反方向返回回复。您还可以使用
<webview>.executeScript
将 JavaScript 片段注入(inject)到您的 webview guest 中。 。例如,您可以通过这种方式将单击事件处理程序附加到 guest 中的按钮,该按钮将执行您需要在应用程序的执行上下文中执行的操作(当然,为此您的事件处理程序必须是闭包) 。或者,您可以从访客内部收集一些信息,然后返回executeScript
中的应用程序。的回调。最后是
<webview>.insertCSS
- 不适合您的需求,但我提到它是为了完成您可以用来与 webview guest 交互或更改 webview guest 的一组方法。
关于webview - Chrome 打包应用程序如何与 webview 交互(监听从中触发的事件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21624897/