Javascript Chrome扩展主机注册在windows中不起作用
我想通过点击网页上的按钮来运行控制台应用程序 控制台应用程序将获取信息并放入剪贴板,然后我将在网页上获取该信息。 我正在跟踪Javascript Chrome扩展主机注册在windows中不起作用,javascript,google-chrome-extension,chrome-native-messaging,Javascript,Google Chrome Extension,Chrome Native Messaging,我想通过点击网页上的按钮来运行控制台应用程序 控制台应用程序将获取信息并放入剪贴板,然后我将在网页上获取该信息。 我正在跟踪 我做了3-4次,所有其他事情看起来都很好,但控制台应用程序并没有被调用/执行 我收到了这些错误。 在网页控制台上 Unchecked runtime.lastError:消息端口在收到响应之前关闭。 在后台文件上 Unchecked runtime.lastError:找不到指定的本机消息传递主机。 Unchecked runtime.lastError:消息端口在收到响
我做了3-4次,所有其他事情看起来都很好,但控制台应用程序并没有被调用/执行 我收到了这些错误。
在网页控制台上
Unchecked runtime.lastError:消息端口在收到响应之前关闭。
在后台文件上
Unchecked runtime.lastError:找不到指定的本机消息传递主机。
Unchecked runtime.lastError:消息端口在收到响应之前关闭。
我的密码是
manifest.json
{
"name": "EID Reader",
"version": "1.0",
"manifest_version": 2,
"description": "Read Emirates ID",
"permissions": [ "contextMenus", "activeTab", "clipboardRead", "nativeMessaging" ],
"icons": {
"16": "eid16.png",
"48": "eid48.png",
"128": "eid128.png"
},
"background": {
"scripts": [ "eid.js" ]
},
"content_scripts": [
{
"matches": [ "http://*/*", "https://*/*", "file://*/*"],
"js": [ "content_script.js", "jquery-3.3.1.js" ],
"all_frames": true,
"run_at": "document_start"
}
]
}
content_script.js
// Listener to catch the event raised by the webpage button
document.addEventListener("EID_EVENT", function (data) {
// send message to background process to read emirates ID and send back the data
chrome.runtime.sendMessage("ifligfijbkpijeafdfbpljjibfbppmeb", function (response) {
});
});
// Listener to catch the data coming from the background process
chrome.extension.onMessage.addListener(function (msg, sender, sendResponse) {
if (msg.action == 'EID_DATA') {
//Parse the data and fill the form accordingly
try {
var json = $.parseJSON(msg.response);
$(json).each(function (i, val) {
$.each(val, function (key, value) {
if (key == 'EIDNumber')
$("#txtNumber").val(value);
if (key == 'Name')
$("#txtName").val(value);
if (key == 'Email')
$("#txtEmail").val(value);
if (key == 'PassportNumber')
$("#txtPassport").val(value);
});
});
}
catch (e) {
var error = "error" + e;
}
}
});
eid.js(背景)
ae.eid.chrome.json
{
"name": "ae.eid.chrome",
"description": "chrome extension to read EID",
"path": "EIDSampleConsole.exe",
"type": "stdio",
"allowed_origins": [
"chrome-extension://ifligfijbkpijeafdfbpljjibfbppmeb/"
]
}
安装_host.bat
REG ADD "HKCU\Software\Google\Chrome\NativeMessagingHosts\ae.eid.chrome" /ve /t REG_SZ /d "%~dp0ae.eid.chrome.json" /f
我花了两天没有得到任何帮助。我是否犯了一些错误,或者Google Chrome阻止或更改了注册主机的方式。我已经解决了所有问题,并在 此外,我还发布了chrome扩展,如果您遵循上述步骤,同样的扩展也将适用于您 铬延伸
我已经解决了所有问题,并在 此外,我还发布了chrome扩展,如果您遵循上述步骤,同样的扩展也将适用于您 铬延伸
要尝试的内容不应超过几分钟:0)确保正式版本在您的计算机上运行。1) 启用并检查日志文件是否存在错误,2)使用并检查Chrome如何定位/运行主机文件。3) 要隐藏“message port closed”(消息端口关闭)错误,只需从两个sendMessage调用中删除回调,您无论如何都不会使用它。我想说唯一明显可疑的事情是
“path”:“EIDSampleConsole.exe”中缺少完整路径
。在写下这个问题并输入示例应用程序主机后我是示例应用程序主机扩展开发的新手,我在chrome中没有看到任何图标,但我已经创建了注册表键。现在,如果我的应用程序抛出不同的错误,即未经检查的运行时。lastError:本机主机已退出。
在后台文件控制台上。读卡器也会闪烁。这些新信息无助于识别问题。试试我建议的其他方法。这是一个bug,网页正在调用exe,但不要等待响应,并立即抛出未检查的运行时。lastError:消息端口在收到响应之前关闭。
后台控制台等待结果并在完成时显示未检查的运行时。lastError:本机主机已退出。
和未检查的运行时。lastError:消息端口在收到响应之前关闭。
而文本框中也包含来自卡的数据。要尝试的内容不应超过几分钟:0)确保正式版本在您的计算机上运行。1) 启用并检查日志文件是否存在错误,2)使用并检查Chrome如何定位/运行主机文件。3) 要隐藏“message port closed”(消息端口关闭)错误,只需从两个sendMessage调用中删除回调,您无论如何都不会使用它。我想说唯一明显可疑的事情是“path”:“EIDSampleConsole.exe”中缺少完整路径
。在写下这个问题并输入示例应用程序主机后我是示例应用程序主机扩展开发的新手,我在chrome中没有看到任何图标,但我已经创建了注册表键。现在,如果我的应用程序抛出不同的错误,即未经检查的运行时。lastError:本机主机已退出。
在后台文件控制台上。读卡器也会闪烁。这些新信息无助于识别问题。试试我建议的其他方法。这是一个bug,网页正在调用exe,但不要等待响应,并立即抛出未检查的运行时。lastError:消息端口在收到响应之前关闭。
后台控制台等待结果并在完成时显示未检查的运行时。lastError:本机主机已退出。
和未检查的运行时。lastError:在收到响应之前,消息端口关闭。
,同时文本框中也包含来自卡的数据。
REG ADD "HKCU\Software\Google\Chrome\NativeMessagingHosts\ae.eid.chrome" /ve /t REG_SZ /d "%~dp0ae.eid.chrome.json" /f