私はこれにしばらく取り組んできましたが、これを理解することはできません。Chrome Native Messagingのドキュメントを読みましたが、「指定されたネイティブ メッセージング ホストが見つかりません」というメッセージが引き続き表示されます。拡張子からのエラー。
レジストリが指すマニフェスト:
{
"name": "com.fordcars.chromekeys",
"description": "ChromeKeys description",
"path": "C:\Users\fordcars\Desktop\Development\ChromeKeys\Debug\ChromeKeys.exe",
"type": "stdio",
"allowed_origins": [
"chrome-extension://pdkakljppghagmaoijbpicogfdbodpbc"
]
}
拡張スクリプト:
// Event page
var nativeName = "com.fordcars.chromekeys";
var nativePort = chrome.runtime.connectNative(nativeName);
function nativeDataReceived(data)
{
// Not used
}
function nativeDisconnected()
{
console.log("Native program disconnected. Error: " + chrome.runtime.lastError.message);
}
nativePort.onMessage.addListener(nativeDataReceived);
nativePort.onDisconnect.addListener(nativeDisconnected);
connectNative() するとすぐにエラーが発生することに注意してください。拡張マニフェストに「nativeMessaging」権限があります。
レジストリ:
Subkey: HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.fordcars.chromekeys
Value name: (Default)
Value: C:\Users\fordcars\Desktop\Development\ChromeKeys\Debug\nativeManifest.json
デバッグ: デバッグを行ったところ、connectNative nativeName を com.fordcars.chromekeys から別の名前に変更しても、同じエラーが発生することがわかりました。つまり、レジストリ キーが見つからないか、レジストリ キーが見つからないかのどちらかです。良い manifest.json があります。
ありがとう!