【问题标题】:Message Passing Between Chrome Packaged Apps and ExtensionsChrome 打包应用程序和扩展程序之间的消息传递
【发布时间】:2013-12-26 20:33:01
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 太棒了,谢谢!我没有意识到你可以硬编码扩展 ID。
    猜你喜欢
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 2012-09-28
    • 1970-01-01
    相关资源
    最近更新 更多