我正在开发一个 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/