使用不带extensionID的chrome.runtime.sendMessage

时间:2015-07-04 19:23:38

标签: google-chrome sendmessage

我正在开发一个需要使用客户必须下载和安装的扩展程序的项目,但是我的网页需要与扩展程序通信,所以我使用了记录的方式:

https://developer.chrome.com/extensions/runtime#method-sendMessage

chrome.runtime.sendMessage(string extensionId, any message, object options, function responseCallback)
{
    ...
}

这意味着我必须包含" extensionId"扩展只在安装后才生成此代码。

这声音听起来不那么马#34;?

我必须向我们的客户解释这个问题,如何去获取他们的扩展ID,以及如何将其应用到此页面以使其工作?它看起来非常笨拙,特别是因为我必须明确设置权限。

"externally_connectable": {
    "matches": ["*://mywebsite.com/*"]
  },

如果我省略extensionId,它就不起作用了。 " 未捕获错误:无效的连接参数"

1 个答案:

答案 0 :(得分:0)

根据您发布的link,它表示extensionId是可选的,它是“发送邮件的扩展程序/应用程序的ID。如果省略,邮件将被发送给您自己的扩展/应用。“因此,即使没有扩展ID, 仍然可以正常工作。

话虽如此,我注意到我正在尝试调试的扩展程序上出现同样的错误,但它似乎都在工作,尽管它。当我添加extensionId时,错误消失了。可能需要找到一种方法来从扩展中访问extensionId。

更新:我成功替换了'@@ extension_id'。 See this