Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2020(UTC) Сообщений: 3
|
Всем привет! Встретился с проблемой итеграции плагина в Электорон Electron. В браузере проблем с плагином не возникает, а в электорне не получается заставить работать плагин. Плагин добавляю следующим образом Код:
BrowserWindow.addExtension('dist/assets/iifchhfnnmpdbibifmljnfjhpififfog');
По логам могу понять что плагин успешно подгружается и начинает работать. Насколько я понял плагин общается с крипто про по своему протоколу через window.postMessage() Мне кажется проблема в том, что плагин пытается достучаться по http к электрону, а электрон не слушает http интерфейс. Может быть кто уже решал проблему интеграции плагина в электорн. Буду благоодарен за помощь в решении проблемы.
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 394 раз в 366 постах
|
Интересная тема. С Электроном плотно не сталкивался, но схема работы с расширением в обычном браузере несколько сложнее. Браузер загружает расширение, читает что ему необходимо и при необходимости запускает консольную программу связанную с расширением, обмен происходит через stdin stdout консольной программы. Консольная программа в свою очередь подгружает основную библиотеку плагина, которая уже работает с CryptoAPI. postMesssage расширения (json вид) идет на уровень глубже (background), откуда уже пишется в канал связанный со stdin консольной программы, а ответ из stdout через background отправляется сообщением обратно в расширение. По идее там негде применить http. Если интересно, то это хорошо продемонстрировано на тестовой страницы подписи КриптоПро (где-то тут был локальный вариант). Сообщения пишутся в console.log и видно что сообщение идет между двумя скриптами. один переводит созданные псевдо-объекты и их методы в json, второй ловит json и передает на канал консольной программы. Отредактировано пользователем 10 февраля 2020 г. 11:38:03(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2020(UTC) Сообщений: 3
|
В коде самого плагина нашел такие строки: Код:
var docURL = window.document.URL;
object_messsage = {destination:"nmcades", requestid: g_request_id, type: "init", url: docURL};
Поэтому решил, что может проблема связана с неправильным docURL. Думаю браузер не имеет (и не должен иметь из-за проблем безопасности) возможности запускать программы (даже консольные) в расширении. В "permissions": [ "nativeMessaging" ], используется только nativeMessaging. Думаю крипто про и плагин общаются между собою через nativeMessaging протокол. И нужно искать в это направлении. Нашел одну тему связанную с похожей проблемой https://github.com/electron/electron/issues/8692Попробую что-нибудь накопать. Отредактировано пользователем 11 февраля 2020 г. 9:16:30(UTC)
| Причина: Не указана
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602 Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 394 раз в 366 постах
|
Цитата:object_messsage = {destination:"nmcades", requestid: g_request_id, type: "init", url: docURL}; Это как я понимаю, нужно для фильтрации каким сайтам разрешено обращаться к плагину, а не для ответа. Автор: Nikita Kolesnikov Думаю браузер не имеет (и не должен иметь из-за проблем безопасности) возможности запускать программы (даже консольные) в расширении. В "permissions": [ "nativeMessaging" ], используется только nativeMessaging. Разрешение действительно именно такое. Факт, что браузер консольные программы запускает (в операционной системе). Вот как это выглядит с ИЕ и nativeMessaging плагинами. kontur.jpg (121kb) загружен 12 раз(а).В Хроме аналогично, но заснять немного сложнее. Поэтому в Хром встроена "песочница" для них и все такое. Конечно исполняемый файл находится не в расширении, а устанавливается отдельно на компьютер как плагин. К файлу приложения могут обращаться разные браузеры независимо, каждый создает свой экземпляр запущенного процесса. Возможно проблема в том, что на компьютере не установлена часть-плагин с консольной программой. Отредактировано пользователем 11 февраля 2020 г. 9:49:21(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 14.01.2021(UTC) Сообщений: 1
|
Автор: Nikita Kolesnikov Удалось в итоге побороть побороть проблему?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 10.02.2020(UTC) Сообщений: 3
|
Проблему не удалось решить. Решили с заказчиком, оставить реализацию на потом. Может быть за это время найдется решение.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close