Андрей
Спасибо)
Anonymous
Я вот это юзал https://github.com/wilix-team/iohook
На маке эта вещь потребует добавления в аппы в Accessibility list в настройках
Anonymous
Так что я бы iohook использовал только если есть реальная нужда в этом, например в случае свернутого приложения
Андрей
А универсального решения нет? У меня приложуха постоянно в трее будет висеть и нужно ловить эти события.
Anonymous
Нужно использовать сторонние либы
Rostislav
Я использовал iohook и еще есть robotjs, но ответ - нет
А как по опыту что лучше robot или iohook? Просто robot не трогал
Anonymous
А как по опыту что лучше robot или iohook? Просто robot не трогал
Я тоже робот не трогал, но он как-то слишком большим выглядит :)
Rostislav
Я тоже робот не трогал, но он как-то слишком большим выглядит :)
Есть ещё gkm но у него основа на Java, и у меня что то с ним не получилось
Anonymous
Вот единственный минус iohook помимо того, что нужно добавлять в accessibility, это отсутствие проверки добавил ли юзер аппу в этот список :)
Anonymous
Там в issues есть обсуждение, что внутри либы есть флаг, но его никак наружу не показывают
Anonymous
Так что если для вашей аппы критически ловить мышку и клавиши, то нужно извращаться и кастомно проверять добавил ли юзер в исключения
Андрей
При установке пакета ioHook не находит один prebuild пакет. 404 ошибку выдает. Кто сталкивался с таким?
Rostislav
https://wilix-team.github.io/iohook/usage.html
Rostislav
Rostislav
в package.json пропиши под себя
Андрей
7.1.4
Rostislav
в targets оставляй только electron-75
Андрей
Это через веб пак нужно?
Андрей
Спс, поборол)
Rostislav
Anonymous
всем доброго времени суток! можете подсказать по сборке в Electron?
Святослав
какое жуткое животное
Святослав
всем доброго времени суток! можете подсказать по сборке в Electron?
привет лучше сразу с вопросов и начинать)))
Anonymous
я разрабыатываю проект, в котором используются "child_process". Есть Main скрипт, который запускает выполнение другого скрипта как отдельный процесс с последующим общением через "process.on"/ "process.send" и т.п. в dev mode я через fork и spawn указал, что в корне лежат необходимые скрипты и они выполняются как нужно (запускаются и обмениваются данными), но если делать билд, то те файлы (скрипты процессов) отсутствуют, т.е. билд не включает их в сборку. Может в package.json нужно прописать что-то? не могу разобраться
Anonymous
Все файлы лежат в одном месте. Сборщик electron-builder
Electron.js releases
v9.0.0-nightly.20200109 https://github.com/electron/electron/releases/tag/v9.0.0-nightly.20200109 v9.0.0-nightly.20200109
Vadim
Все файлы лежат в одном месте. Сборщик electron-builder
https://www.electron.build/configuration/configuration ищи по ключу files
Vadim
Для путей используй app.getAppPath()
Vadim
А почему не нужно?
Нельзя класть в сборку папку src
Vadim
Ее же легко можно восстановить из собранного приложения
Vadim
В сборку можно включать только обфусцированный или не нужный код, который хоть на github выкладывай
Nafanya
Мб кто подскажет, как отправить команду Commander.executeCommand в жизненном цикле?
Anonymous
https://www.electron.build/configuration/configuration ищи по ключу files
спасибо, буду пробовать через extraResources
Андрей
Подскажите, sqlite3 нужно ставить с определёнными параметрами? По дефолту не хочет запускаться
Sergey
Подскажите, sqlite3 нужно ставить с определёнными параметрами? По дефолту не хочет запускаться
sqlite3 сначала компилируется с определеными флагами, а потом подтягивается в проект, без этого она работать не будет
Sergey
Уже поборол)
могу посоветовать для electron indexdb это встроенная база данных браузера
Андрей
Для неё модуль есть? Или она так доступна?
Sergey
Для неё модуль есть? Или она так доступна?
она доступна проямо из рендер процесса, по работе с ней есть у Канта в учебнике и в мозилы, да и пакетов оберток для нее хватает
Андрей
А в мейн процессе доступна?
Sergey
только она не sql, а NoSQL принципа придерживается, и там не самый удобный поиск и группировка
Андрей
Мне по сути как буфер для временного хранения, потом все на бэк уходит
Sergey
как буфер можно и LocalStorage юзать, создали JSON объект, десериализовали и в локал, когда нужно достали. Это если строка меньше 4 мб получается, если больше можно indexDB, но там работать с большими документами несколько геморно, а в остальном изи
Андрей
Мне по сути хранить пути и айдишки, и ещё пару мелких таблиц
Андрей
Больших данных вообще нет
Sergey
тогда можно все это сунуть в indexDB она для этого и создана как клиентская база данных
Андрей
Понял.
Anonymous
А что вообще можно использовать в качестве базы для синхронизированного доступа из рендера и мейна?
Sergey
https://www.youtube.com/watch?v=vKUVJHV3og4
Anonymous
Я сейчас использую lokijs, всё хорошо, но приходится вручную загружать базу в рендере, когда знаю, что мейн что то в ней поменял
Vadim
electron-store весьма крутая штука для хранения небольших данных, как локалсторэдж, только доступна для обоих процессов, легкая, быстрая и не нативная, а на обычном JS.
Андрей
https://www.youtube.com/watch?v=vKUVJHV3og4
Это я сделал все. Я про то, когда билдить буду, нужно с sqlite3 какие-то махинации делать?
Nikita
Почти год юзаю, а какие проблемы?
с синком в рендере были траблы (многооконное приложение), это все решили сейчас трабла со скоростью. например, поля форм хранятся в редаксе, он реактивно требуется в нескольких тредах, при вводе в инпут наблюдаются тормоза. прям часть символов пролетает при быстром последовательном вводе
Nikita
но пока нет уверенности, что виноват именно electron-redux
Завтра
поэтому логику надо держать в main-процессе
Nikita
поэтому логику надо держать в main-процессе
я архитетуру более года назад писал, она сильно отстала от реальности и вообще была про другой целевой проект, сейчас в этом основная причина проблем. так что согласен. особенно, после появления многооконности
Завтра
и ведь спорил еще, что все в рендере надо делать 💁🏻‍♂️
Sergey
Это я сделал все. Я про то, когда билдить буду, нужно с sqlite3 какие-то махинации делать?
нет, если вы все сделали, то ничего компилировать больше не нужно
Андрей
Спасибо.
Андрей
Подскажите как правильно вызвать функцию в рендер процессе с стороннего модуля?
Electron.js releases
v9.0.0-nightly.20200110 https://github.com/electron/electron/releases/tag/v9.0.0-nightly.20200110 v9.0.0-nightly.20200110
Oleh
У меня есть вопрос по архитектуре. Есть приложение, которое грузит локальные страницы, которые идут вместе с приложением. Но есть одна страницы, на которой при вводе домена, нужно отобразить содержимое этого домена, если оно доступно. Так вот, раньше что бы установить nodeIntegration: false, для сторонних страниц. Я просто закрывал текущее окно, и рендерил другое, что бы отобразить контент этой страницы с nodeIntegration: false, а при переходе на локальные я делал тоже самое в другом направлении (была проверка через url.includes('file:')). Теперь пеедела так, что бы все рендерилось в одном окне, внутри которого nodeIntegration: true. Но внешние страницы рендерит через webview. Вопрос, все ли нормально с безопасностью в таком приложении? И вообще насколько это нормально сделано?
Oleh
Ну может это важно сказать еще, что nodeIntegration в локальных страницах мне нужен, что бы импортить зависимости.