Chrome扩展程序原生邮件未打开端口

时间:2017-01-31 15:36:45

标签: javascript google-chrome google-chrome-extension

我需要创建一个Chrome扩展程序,除其他外,需要调用本机Windows应用程序来获取一些数据,特别是IP地址和Citrix用户ID(显然在Citrix上)。目前,我无法打开扩展程序中的端口,我只是在本地执行此操作,在Windows 10上,没有Citrix。

我的监听器清单文件是:

{
    "name": "com.q.userid",
    "description": "My Application",
    "path": "C:\\Temp\\NativeMessageHost.exe",
    "type": "stdio",
    "allowed_origins": [
      "chrome-extension://mbodcbioidcfdfhjgekeppinibhhnnmh/"
     ]
}

为了简单/测试,我的扩展程序使用浏览器操作,弹出一个文本框,然后在onKeyUp中调用我的本机应用程序。我的JS如下:

  $(function() {
    $('#name').keyup(function(){
        var port;
            port = chrome.runtime.connectNative('userid');
            console.log(port);
            port.onMessage.addListener(function(msg) {
                console.log('Received: ' + msg);
            });
            port.onDisconnect.addListener(function() {
                console.log("Disconnected");
            });
            port.postMessage({text: "hello"});

        });
    });

扩展程序的我的清单文件是:

   {
    "manifest_version": 2,
    "name": "Hello World",
    "description": "Hello World",
    "version": "1.1",
    "browser_action": {
    "default_icon": "icon.png",
    "default_title": "Hello World",
    "default_popup": "popup.html"
  },
    "permissions": [
        "nativeMessaging"
   ]
}

当我触发代码时,我得到了一个输出 港口 {} 断开连接

"断开"是立即。

从Windows任务管理器,我没有看到exe启动。

在扩展程序的控制台中我过去了

port = chrome.runtime.connectNative('userid');

然后我粘贴

port.postMessage({text: "hello"});

这会产生未被捕获的错误:请注意使用断开连接的端口。

我添加了注册表项: HKEY_CURRENT_USER->软件 - > Google-> CHROME-> NativeMessagingHosts-> com.q.userid

默认值:c:\ temp \ manifest.json

我也试过了  默认值:c:\ temp \ manifest.json

chrome日志声明无法找到userid

的清单文件

有任何想法或建议吗?

提前致谢。

0 个答案:

没有答案