Ami*_*Ami 5 javascript json google-chrome-extension chrome-native-messaging
我创建了一个使用本地消息传递到主机的扩展。
扩展的 manifest.json 是:
{
"manifest_version": 2,
"version": "1.0",
"name": "Native Messaging Example",
"description": "Send a message to a native application",
"permissions": [
"nativeMessaging"
],
"browser_action": {
"default_popup": "popup.html"
}
}
Run Code Online (Sandbox Code Playgroud)
popup.html:
<html>
<head>
<script src="./main.js"></script>
</head>
<body>
<button id="buttonToPress">Press</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
main.js 文件:
var port = null;
function connect() {
port = chrome.runtime.connectNative('com.google.chrome.example.echo');
port.onMessage.addListener(function(message) {
alert(message);
port.disconnect();
});
port.onDisconnect.addListener(function() {
port = null;
alert(chrome.runtime.lastError.message);
});
var message = {
'filePath': 'C:\\Users\\username\\Desktop\\themes\\Wallpaper\\Architecture\\img13.jpg'
};
port.postMessage(message);
}
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('buttonToPress').addEventListener('click', connect);
});
Run Code Online (Sandbox Code Playgroud)
我有一个本机应用程序abc.exe。
本机应用程序 manifest.json:
{
"name": "com.google.chrome.example.echo",
"description": "Chrome Native Messaging API Example Host",
"path": "./abc.exe",
"type": "stdio",
"allowed_origins": [
"chrome-extensions://fegpbklgdffjmfjmhknpmgepbddbcghk/"
]
}
Run Code Online (Sandbox Code Playgroud)
在registrey所述的默认值的HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.google.chrome.example.echo是C:\Users\username\Desktop\Extension1\NativeApp\manifest.json(这是清单文件是物理上存在)。
问题是,每次我运行它时,它都会说:“未找到指定的本地消息传递主机” ......我重新检查了我的代码,它似乎没问题,就像谷歌的本地消息传递指南一样。调试器控制台中记录的错误是:'Uncaught Error: Attempting to use a disconnected port object',我不知道为什么它一直发生。
此外,在chrome.runtime.connectNative.exe之后,.exe 不会启动(在任务管理器中看到后),它似乎只是喜欢与代码无关的东西,但更有可能在配置中。
我需要一些帮助来解决这个问题,所以任何帮助都会有用!
谢谢
请注意,allowed_origins 中列出的 chrome 扩展必须以 / 结尾
错误代码(不带 /):
"allowed_origins": [
"chrome-extension://acajlpgjiolkocfooiankmegidcifefo"
]
Run Code Online (Sandbox Code Playgroud)
正确代码:
"allowed_origins": [
"chrome-extension://acajlpgjiolkocfooiankmegidcifefo/"
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11129 次 |
| 最近记录: |