1

Я работаю над этим какое-то время, я не могу понять это. Я прочитал Chrome Native Messaging docs, но я все равно получаю «указанный локальный сервер обмена сообщениями не найден». ошибка из расширения.Почему я получаю «Встроенные сообщения для Chrome»? Указанный локальный узел обмена сообщениями не найден. »?

Manifest указал реестром:

{ 
    "name": "com.fordcars.chromekeys", 
    "description": "ChromeKeys description", 
    "path": "C:\Users\fordcars\Desktop\Development\ChromeKeys\Debug\ChromeKeys.exe", 
    "type": "stdio", 
    "allowed_origins": [ 
    "chrome-extension://pdkakljppghagmaoijbpicogfdbodpbc" 
    ] 
} 

Extension скрипт:

// 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 

Debugging: Я сделал некоторые отладки и обнаружил, что если я изменю свое connectNative nativeName от com.fordcars.chromekeys к чему-то еще, я до сих пор прибудут та же ошибка, так что это либо не находит ключ реестра или/и У меня нет хорошего manifest.json.

Спасибо!

+0

Ну, вы _really_ должны прочитать документацию еще раз. – Xan

ответ

1

Обратная косая черта - символ побега в JSON. Вы должны использовать два обратных слеша в качестве разделителей пути в манифесте:

// BAD: 
"path": "C:\Users\fordcars\Desktop\Development\ChromeKeys\Debug\ChromeKeys.exe", 
// GOOD: 
"path": "C:\\Users\\fordcars\\Desktop\\Development\\ChromeKeys\\Debug\\ChromeKeys.exe", 

Я настоятельно рекомендую, чтобы узнать, как отлаживать, как описано в Debugging native messaging, потому что если вы сделаете это, то вы бы увидели более подробное сообщение об ошибке :

Найдено манифест, но не двоичный файл для встроенного обмена сообщениями com.fordcars.chromekeys. Хост путь, указанный в манифесте: C: UsersordcarsDesktopDevelopmentChromeKeysDebugChromeKeys.exe

Даже не глядя в журнал ошибок, если вы следовали пункты маркированного на сообщение об ошибке, вы могли заметить разницу между sample manifest и вашим (а именно ошибочные обратные косые черты).

+0

Да, я только что получил это от валидатора JSON, но обязательно просмотрю вывод из журналов Chrome – fordcars