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

时间:2013-12-26 20:33:02

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

我正在开发一个Chrome打包的应用程序,并且已经有一个已发布的扩展程序。 This documentation表示如果您拥有应用或扩展程序ID ,则可以在扩展程序和应用之间传递邮件。

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

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

OR

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

谢谢!

1 个答案:

答案 0 :(得分:5)

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

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

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