google-chrome-extension - Chrome 打包应用程序和扩展程序之间的消息传递

标签 google-chrome-extension google-chrome-app

我正在开发一个 Chrome 打包应用程序,并且已经有一个已发布的扩展。 This documentation指出您可以在扩展程序和应用程序之间传递消息如果您有应用程序或扩展程序的 ID

我的目标是在应用程序启动时关闭扩展程序上的桌面通知。我知道我可以通过 chrome.management 在扩展程序中获取应用程序的 ID,但反之则不然。

有没有办法在应用程序内获取扩展程序的 ID?因此,我可以从应用程序向扩展程序发送消息以关闭通知。

或者

扩展程序中有没有办法监听应用程序的启动?因此,我可以开始在两者之间传递消息,或者只是在扩展程序中关闭通知。

谢谢!

最佳答案

由于您拥有扩展程序和应用程序,因此您应该在源代码中对扩展程序 ID 进行硬编码。然后,在两个应用程序/扩展程序中,只需在启动期间向另一个扩展程序/应用程序发送消息即可。

我猜您已经放弃了对扩展 ID 进行硬编码,因为扩展 ID似乎是不稳定的:每当您以解压模式加载扩展时,ID 都是不同的。
这不是问题:通过声明 "key"在 list 文件中的字段中,扩展 ID 将被设置为固定值。

如果您要将扩展程序上传到 Chrome 网上应用店,请确保您拥有用于对扩展程序进行签名的 .pem 文件。扩展 ID 取决于此私钥,如果丢失它,则无法创建具有相同 ID 的新 CRX 文件。
首次将扩展上传到 CWS 时,您需要将私钥作为 key.pem 包含在 zip 文件的根目录(即 key.pem)。 pem 而不是 subdir/key.pem)。
如果您省略此步骤,CWS 将自动为您的分机生成一个新 ID。因此,您必须更新其他扩展的源代码才能处理这个新 ID。

关于google-chrome-extension - Chrome 打包应用程序和扩展程序之间的消息传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20790892/

相关文章:

javascript - Chrome 扩展程序 - 页面操作 : defining pages

google-chrome-app - 使用 Chrome 移动应用设置状态栏颜色

javascript - 如何在 Chrome 应用程序被卸载之前运行代码

google-chrome-extension - 我们如何从 chrome 扩展执行 shell 命令;有提供的方法吗?

google-chrome-extension - 如何构建像 Google Hangouts 这样的 chrome 扩展程序

google-chrome-extension - 使用预定义 key 打包 Chrome 扩展程序

google-chrome-extension - ClojureScript 中的 Chrome 扩展中的消息传递

javascript - Chrome 扩展 DOMContentLoaded 未触发

google-chrome - Chrome 打包应用 onActive

javascript - 与 webview 的 DOM 交互