在Chrome打包应用程序和扩展程序之间传递消息

jul*_*yce 2 google-chrome-extension google-chrome-app

我正在开发一个Chrome打包的应用程序,并且已经有一个已发布的扩展程序.此文档声明,如果您拥有应用程序或扩展程序的ID,则可以在扩展程序和应用程序之间传递消息.

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

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

要么

在扩展程序中是否有一种方法可以监听应用程序的启动?所以,我可以开始在两者之间传递消息,或者只是在扩展中关闭通知.

谢谢!

Rob*_*b W 5

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

我猜你已经解散了硬编码扩展ID,因为扩展ID 似乎是不稳定的:每当你在解压缩模式下加载扩展时,ID就不同了.
这不是问题:通过"key"在清单文件中声明字段,扩展ID将设置为固定值.

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