Vadim
А при обновлении не удаляет
Rustam
у менящас макроскрипт который удлаяет всегда
Rustam
щас проверю
Rustam
deleteAppDataOnUninstall = false Boolean - one-click installer only. Whether to delete app data on uninstall.
Rustam
нифига, это только для one-click
Rustam
у меня не one-click, а one-click не дает админских прав NSIS для макроскриптов при установке
Rustam
нашёл зацепку
Rustam
https://github.com/electron-userland/electron-builder/blob/1ea72b888ab4afeb5ca266f19fc96cae7d001800/packages/app-builder-lib/templates/nsis/include/installUtil.nsh ${if} ${isDeleteAppData} StrCpy $0 "$0 --delete-app-data" ${else} # always pass --updated flag - to ensure that if DELETE_APP_DATA_ON_UNINSTALL is defined, user data will be not removed StrCpy $0 "$0 --updated" ${endif}
Rustam
передает флаги
Rustam
теперь надо понять как внутри NSIS их словить
Rustam
нашёл
Rustam
https://www.electron.build/configuration/nsis Is there a way to call just when the app is installed (or uninstalled) (раскрывающийся ответ) manually and not on update? Use ${isUpdated}. ${ifNot} ${isUpdated} # your code ${endIf}
Vadim
👍
Rustam
теперь главное чтобы он работал
Electron.js releases
v10.0.0-nightly.20200409 https://github.com/electron/electron/releases/tag/v10.0.0-nightly.20200409 v10.0.0-nightly.20200409
Electron.js releases
v9.0.0-beta.15 https://github.com/electron/electron/releases/tag/v9.0.0-beta.15 v9.0.0-beta.15
Мира
Это не будет окно
Проблема, протоколы как обезопасить?
Мира
Это же открытая ссылка В протокол можно записать в квери параметр что угодно
Мира
Да Я думал над айди, но его ведь тоже можно стащить во время передачи по ссылке
Vadim
Есть такое понятие как OTS
Vadim
Это токен время жизни которого очень короткое(до 5 минут)
Vadim
Позволяет получить нормальный токен
Vadim
Использовать можно толко один раз
Мира
Ну а как подлинность токена проверить?
Мира
Использовать можно толко один раз
Ну как на електроне принимать токены то? Имеется ввиду, как узнать, токен настоящий или его юзер руками в адресную строку вбивал
Rustam
Кто-нибудь использовал delta updates для NSIS ?
Rustam
не для web installer, а именно для nsis
Rustam
delta updates это и есть частичное обновление, ставится одной опцией. Но пока боюсь тестить пока просто инсталлер-обновлятор не стабилизирован
Олег
подскажите, как правильно интегрировать бинарник (который по сути является ядром) в приложение на электроне ?
Дмитрий
подскажите, как правильно интегрировать бинарник (который по сути является ядром) в приложение на электроне ?
скомпилить как нативный аддон к ноде под все платформы, под которые есть поддержка ну и через napi прокинуть в js нужные сущности
Дмитрий
такое прокатит, если код на С/С++
я на rust собирал через neon компилить из всего можно, что C abi поддерживает, главное сделать публичным/немангленным символ который нода ищет (ща не помню так, надо в доке смотреть) а вообще, .node файл - это обычный .so под линем, .dll под виндой и .dylib под мак
Владимир
такое прокатит, если код на С/С++
ну можете через exec вызывать команды и парсить ответ
Владимир
или веб-сервес сделать
Олег
тогда интересует, как это можно сделать на Go
Дмитрий
или веб-сервес сделать
и иметь лишний запрос на открытие порта от фаервола у юзера
Олег
как сделать на го cli?
нет, плагин для napi
Дмитрий
тогда интересует, как это можно сделать на Go
смотри в сторону компиляции динамических библиотек
Владимир
https://github.com/charlieduong94/node-golang-native-addon-experiment
Олег
спасибо, гляну
Дмитрий
как сделать на го cli?
ну и napi придется через cgo прокинуть
Дмитрий
заголовки есть в самой ноде (dev) и в node-gyp
Дмитрий
Ну и как понимаю electron rebuilder спасает от ручного компилирования каждый раз
он умеет работать с node-gyp, который сборщик для плюсов, для других языков все же придется руками собирать
Alexiagray
Ля а у меня мак не в какую не хочет го видеть крашится
Alexiagray
Скорей из-за того, что хкода нет
Alexiagray
че он мне все еррорит
Alexiagray
как бы приложение пашет но раздражает видеть это
Electron.js releases
v10.0.0-nightly.20200410 https://github.com/electron/electron/releases/tag/v10.0.0-nightly.20200410 v10.0.0-nightly.20200410
Максим
как подписаться на трафик вебсокетов в вебвью? webRequest.onBeforeRequest можно как то для этого подвязать?
Максим
по идее если в dev tools это есть значит как то можно выцепить
Vadim
по идее если в dev tools это есть значит как то можно выцепить
Devtools не показатель, у них есть возможность как угодно влазить в исполнение кода. Кстати, интересный вопрос, возможно ли это без патчинга глобальных объектов (upd: и изменения кода страницы)
Oleh
ipcrenderer.send?
Максим
нашел метод но не нашел явного вызова https://github.com/ChromeDevTools/devtools-frontend/blob/88e8f1574876b1842db34d52a86d784bf938f696/front_end/sdk/NetworkManager.js#L722
Максим
ipcrenderer.send?
кажется это не то что мне нужно, или ты предлагаешь пропатчить WebSocket в вебвью?
Oleh
У меня вот похожая ситуация была, Выхода другого просто нет. Есть вещи которые работают только в main
Oleh
https://github.com/electron/electron/issues/4352
Oleh
Так что думаю ничего страшного
Максим
Да
не очень хочется так делать, у меня несколько вебвью и это будет костыльно выглядить
Максим
спасибо за предложение, покапаю еще может найду что
Oleh
Сделай один обработчик
Oleh
И там какие-то типы условные, и разрули
Максим
а ipcrenderer будет работать если nodeIntegration=false?
Oleh
Да, у webview же по умолчанию nodeIntegration = false
Oleh
Я сейчас сам вот делаю приложение на webview все нормально работает. Кроме контексного меню :)
Oleh
Прямо сейчас сижу делаю улучшения для этого PR - https://github.com/sindresorhus/electron-dl/pull/103 https://github.com/electron/electron/issues/4352, по скольку судя по этому will-download работает только с main. Хочу предложить что бы пользователь у себя в main вызывал тоже самое, что делает эта библиотека внутри себя. Тогда все работает 🤷‍♂️
Oleh
Так что если webview, и надо сохранять картинки, то контексное меню не работает
Oleh
Ну или надо самому все делать полностью
Максим
попробовал вот так { nodeIntegration: false, preload: path.resolve(__dirname, "preload.js") } и в preload.js WebSocket.prototype._send = WebSocket.prototype.send; WebSocket.prototype.send = function(data) { this._send(data); this.addEventListener('message', function(msg) { console.log('>> ' + msg.data); }, false); this.send = function(data) { this._send(data); console.log("<< " + data); }; } в теориииииии вроде должно прокатить
Максим
еще покапаю все равно WebRequest может получится
Олег
кто вкурсе, как запретить скринить окно электрона?
Олег
т.е. чтобы та область просто заливалась каким-то цветом
Anonymous
кто вкурсе, как запретить скринить окно электрона?
А такое вообще можно реализовать?)
Олег
А такое вообще можно реализовать?)
вообще, можно с электроном не вкурсе