Пример Chrome nativeMessaging не работает в Windows

Я скачал официальную версию Chrome nativeMessaging. пример, чтобы проверить это.

Для этого я установил приложение из chrome://extensions, выбрав «Загрузить распакованное». Пока никаких проблем.

Затем я установил хост. Я использую Windows 7, поэтому я запустил install_host.bat, который утверждал, что «Операция успешно завершена». Однако, когда я захожу в chrome://apps/ и нажимаю кнопку «Подключиться», я получаю эту ошибку:

Failed to connect: Native host has exited.

Есть ли какая-то причина, по которой это произойдет? Перезапуск Chrome не устранил проблему, как и удаление, а затем повторная установка основной программы.

(Я заметил, что для native-messaging-example-host.bat требуется Python 2, поэтому я модифицировал его для явного запуска Python 2. Если я запускаю native-messaging-example-host.bat из командной строки, появляется небольшой пример. собственная программа с графическим интерфейсом и, кажется, работает правильно.)


person Pat Flegit    schedule 04.03.2019    source источник
comment
Я могу подтвердить, что была создана следующая запись реестра: HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.google.chrome.example.echo. Его значение указывает на файл ...\host\com.google.chrome.example.echo-win.json из загруженного примера.   -  person Pat Flegit    schedule 04.03.2019
comment
Убедитесь, что python.exe находится в PATH, или отредактируйте файл native-messaging-example-host.bat, чтобы он указывал на правильный исполняемый файл. Например, вместо этого я использовал py -2.   -  person wOxxOm    schedule 04.03.2019
comment
Это на пути. Я также пытался использовать абсолютный путь непосредственно к исполняемому файлу Python 2.   -  person Pat Flegit    schedule 04.03.2019
comment
Поскольку это работает для меня, пример, вероятно, правильный. Попробуйте поискать ответы/статьи о том, как отлаживать nativeMessaging, например --enable-logging и так далее.   -  person wOxxOm    schedule 04.03.2019
comment
Вам не нужно запускать хост вручную в фоновом режиме, верно? Когда вы нажимаете «Подключиться», приложение должно запускать хост автоматически, верно?   -  person Pat Flegit    schedule 04.03.2019
comment
Да, он должен запускаться автоматически. Еще одна идея отладки: добавить msg %SESSIONNAME% foo в пакетный файл, чтобы вы знали, что он хотя бы запускается.   -  person wOxxOm    schedule 04.03.2019


Ответы (1)


Оказывается, я использовал нестандартный символ в пути, ведущем к исполняемому файлу хоста. Это не было бы проблемой для любой другой программы, но, думаю, собственному API обмена сообщениями Chrome это не нравится.

Кстати, документации по настройке этого примера почти не существует, но эта ссылка на переполнение стека содержит некоторую полезную информацию: Расширение Chrome NativeMessaging 'connectNative' не определено

person Pat Flegit    schedule 04.03.2019