chrome.runtime.connectNative 未定义

nic*_*man 3 google-chrome-extension chrome-native-messaging

我正在构建一个应该连接到控制台应用程序的 Chrome 扩展。

这是我的清单文件:

{
  "name": "my extension",
  "version": "0.0.1",
  "manifest_version": 2,
  "description": "my extension",
  "icons": {
    "16": "icons/icon16.png",
    "48": "icons/icon48.png",
    "128": "icons/icon128.png"
  },
  "default_locale": "en",
  "permissions": [
    "nativeMessaging"
  ],
  "content_scripts": [
    {
      "matches": [
        "<all_urls>"
      ],
      "js": [
        "src/inject/inject.js"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我在inject.js中有这一行:

chrome.runtime.connectNative("org.my_company.my_application");
Run Code Online (Sandbox Code Playgroud)

这会引发类型错误,因为 connectNative 未定义,当我拥有本机消息传递的权限时,它怎么可能是未定义的?我应该怎么做才能解决这个问题?

顺便说一句,我看到了这个问题:Google Chrome Native Messaging Example returns: Uncaught TypeError: chrome.runtime.connectNative is not a function但问题是针对 chrome 应用程序的,我正在构建一个扩展。

我的 chrome 版本在 Windows 7 x64 上是 64。

nic*_*man 5

事实证明,内容脚本中不允许使用本机消息传递,而应在后台页面中完成。