chrome.runtime没有方法'connectNative'

时间:2014-01-04 04:00:25

标签: google-chrome-extension

我正在开发一个需要调用本机应用程序的Chrome扩展程序。

根据Google documentation,我们使用的是chrome.runtime.connectNative方法。 但是在我们的扩展中,似乎chrome.runtime对象没有方法'connectNative'。当我们显示chrome.runtime对象的方法列表时,我们得到以下列表(由console.log(“”+ Object.getOwnPropertyNames(chrome.runtime))打印;

getManifest中,使用getURL,重装,requestUpdateCheck,连接的sendMessage,的onConnect,的onMessage,ID

我们在MacOS X 10.8.5上使用Chrome 31.0.1650.63。我们也尝试使用Chrome Canary(版本34.0.1767.0 canary),我们有相同的错误,chrome.runtime的方法列表略有不同: getManifest,getURL,setUninstallUrl,reload,requestUpdateCheck,connect,sendMessage,onConnect,onMessage,id

因此,在这两种情况下(常规Chrome和Chrome Canary),我们都没有'connectNative'方法。

这似乎不是权限问题,我们的扩展清单在权限属性中确实有“nativeMessaging”。当我们点击Chrome扩展程序设置中的权限链接时,我们可以看到扩展程序可以“与合作的本机应用程序进行通信”。

(抱歉,我无法发布截图或完整的清单,StackOverflow不会让我粘贴甚至远程看起来像我发布图像的东西,因为我没有足够的声誉....)

我们错过了什么吗?

1 个答案:

答案 0 :(得分:2)

您获得的chrome.runtime属性列表表明您的代码是作为内容脚本运行的。大多数chrome。* API不适用于内容脚本。它们只能用于您定义的背景或事件页面,弹出窗口或其他扩展视图。因此,您可以使用从内容脚本到背景或事件页面的常规扩展消息,然后可以调用您的本机应用程序。