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

标签 webview google-chrome-app

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/

相关文章:

android - 使用自定义 HTML 和预定义的基本 URL 将 CSS 文件从 Assets 加载到 WebView

Android-来自 WebView 的简单书签

swift - 将 base64 字符串作为 PDF 显示到 Web View 中

objective-c - 禁用 WebView 中的拖动

javascript - Chrome 开发者工具 : paused before potential out-of-memory crash

android - 如何在WebView中打开YouTube channel 页面

node.js - 如何在离线运行的打包 Chrome 应用程序中创建本地服务器?

javascript - Chrome 打包应用无法读取 urlIsSameOrigin 处未定义的属性 'protocol'

javascript - 以编程方式将密码从 Chrome 密码管理器导入 Chrome 扩展程序

google-chrome - Chrome 应用程序的 chrome.storage.local 存储在哪里?