Dima
самое главное - изменятся разные security defaults
Alexander
Привет ребят, подскажете, как можно Вырезать из електрона инструменты разработчика и верхнюю панель (file,edit,view ...)??? Для дальнейшей компиляции приложения
Pavel
ее на проде и так не будет
Pavel
при дебаге будет
Сергій
Люди вы документалкой пользоваться умеете? Там все пишет местами даже на русском
Alexander
Ладно, позвольте продолжить марафон глупых вопросов? Я просто в коде для некоторых операций с локальной системой баш скрипты через child_process это никак не отразится на компиляции?
Сергій
По идеи не должно
Alexander
Люди вы документалкой пользоваться умеете? Там все пишет местами даже на русском
Сергей, не будьте так суровы, не все в мире достаточно грамотны для документации. Буду признателен, если пришлёте ссылку. Сам искал не нашёл
Сергій
https://electronjs.org
Сергій
Как вы установили electron тогда?)
Alexander
Я про конкретную статью
Alexander
про компиляцию или деформирование функционала
Сергій
Так я так отреагировал на ваше первое сообщение, а не на второе)
Сергій
www.npmjs.com/package/node-powershell
Alexander
Благодарю, но я уже описывал библиотеку для своей реализации: https://nodejs.org/api/child_process.html
Сергій
Да только это не библиотека и уже как я и сказал на компиляции никак не отразится потому то что вы скинули это часть функционала ноды которая из коробки поддерживает електрон
Alexander
Скомпилил своё приложение на electron-forge вот только консоль разработчика осталась, кто нить подскажет как её убрать?
Сергій
webPreferences { devTools: false }
Сергій
https://electronjs.org
Alexander
А поподробнее пожалуйста, для тех, кто в танке
Alexander
Вижу что это опция BrowserWindow
Alexander
Пытаюсь указать через запятую параметр
Сергій
const win = mainWindow.win = new BrowserWindow({ width: 940, height: 740, minWidth: 940, minHeight: 740, frame: true, show: false, fullscreen: false, //conf.app.fullScreenLaunch icon: config.APP_ICON, fullscreenable: true, autoHideMenuBar: true, webPreferences: { webSecurity: false, devTools: true, allowRunningInsecureContent: true }, backgroundColor: '#0c0d0e' })
Сергій
как пример
Alexander
Да, так, я изначально пытался, но у меня IDE ругнулась
Vadim
webSecurity: false, вот это прям боль, у самого такой флаг стоит для обхода CORS, но выглядит плохо.
Сергій
ему нужно толькоdevtools
Alexander
Сергій
другие параметры не обязательные
Alexander
А бл
Alexander
Всё, заработало, завелось. Спасибо за терпение
Anton
Такой вопрос, а кто где хранит настройки приложения? Насколько папка ".<app_name>" в корневой папке с json файлом адекватный способ)?
Anton
Может есть какие-то другие более цивильные методы
Сергій
нужно менять настройки?
Anton
нужно менять настройки?
Да, пользователь может менять. Настройка автозапуска например или открытие в фоне или на весь экран
Сергій
я храню просто в отдельном json файле в app.getPath("userData") прочитайте в документалке полезная фича
Anton
https://github.com/sindresorhus/electron-store
Как я понимаю это просто сахар, сам принцип хранения такой же)
Vadim
Да, но разве вы не любите сахар?
Anton
))
Сергій
не знаю поскольку не было нужды этим пользоваться
Anton
И еще мелкий вопрос, можно ли как-то цепануть первичное открытие приложение после установки? Порылся в документации, не нашел какого-нибудь подобного флага или события. Чтобы например выставить autostart только при первом запуске.
Сергій
просто добавь в тот же конфиг себе какой-то флажок или в localsotrage
Vadim
ТЫ можешь в настройки прописывать флаг
Vadim
++
Anton
Это самой собой, поэтому я и спрашивал сначала, кто как хранит настройки) Вопрос был именно есть ли встроенный в электроне такой флажок, как я уже понял нет)
Anton
Спасибо
S
парни привет,я так понял у всех загружается хромиум последней версии? Получается я могу на всю катушку использовать возможности хромиума?
Sergey
У каждого релиза электрона жёстко забита версия хромиума и ноджс
Yevhen
выглядит так, что есть еще какие-то системные обработчики. Но где их отлавливать хз
Yevhen
всем привет. Есть кто работал с електрон, в частности windows/tray. При клике на иконку в трее, у меня именно на винде происходит открытие вебвью, мгновенное его закрытие и повторное открытие. Не могу найти кто тригерит двойное открытие. по сути висит обычный эвент на клик по трею tray.on('click', toggleWindow); const toggleWindow = (e) => { e.preventDefault(); if (window.isVisible()) { window.hide(); } else { window.show(); } }; я проверил что toggleWindow вызываеться только 1 раз. Больше никаких эевентов я не обрабатываю. Куда можно копать? Пробовал добавлять таймайт на вызов window.show, ситуация та же. Проходит таймаут и дважды показывается вебьвю. Ишью на гите не увидел по этой штуке
Сергій
Покажите пожалуйста код самого трея
Yevhen
const createTray = () => { tray = new Tray(path.join(assetsDirectory, '/icons/EGAIS_icon_white16x16_Template.png')); tray.on('click', toggleWindow); }; app.on('ready', () => { createTray(); });
Yevhen
все что создается по трею
Yevhen
трей создается тоже 1 раз
Yevhen
const createWindow = () => { window = new BrowserWindow({ width: 225, height: 325, show: false, frame: false, fullscreenable: false, resizable: false, transparent: true, webPreferences: { // Prevents renderer process code from not running when window is // hidden backgroundThrottling: false } }); window.loadURL(`file://${path.join(__dirname, 'index.html')}`); } создание вебвью
Yevhen
если запустить приложение и кликать в винде (в тулзбаре запущенных програм). То по клику открываеться единожды. А вот если кликать в трее, то дважды. Я могу как-то повеситься на какое-то событие(я не знаю какое) и посмотреть его console.trace. Что бы хотя бы начать понимать кто тригерит это событие лишнее
Yevhen
window.on('show'...) тоже раз тригериться :/
Сергій
странно я вроде повторил но у меня нормально открывается и закрывается
Yevhen
именно в винде?
Сергій
да
Сергій
на семерке
Сергій
const toggleWindow = (e) => { e.preventDefault() if (windows.mainWindow.win.isVisible()) { windows.mainWindow.hide() } else { windows.mainWindow.show() } }; // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. app.on('ready', () => { // loading app configuration scripts.appConf.initConf() .then(res => { tray = new Tray(config.APP_ICON) tray.setToolTip('MTTV') tray.on('click', toggleWindow) // tray.setContextMenu(trayMenu) windows.preloaderWindow.initWindow() }) .catch(err => { dialog.showErrorBox("APP START ERROR", err) }) })
Yevhen
а как вы создавали вебвью?
Сергій
https://github.com/mttv/mttv-app/blob/master/app/electron/windows/preloaderWindow/preloaderWindow.js
Сергій
а кстати где у вас оно вызываеться я не вижу
Сергій
или при запуске только трей создаеться?
Yevhen
при запуске
Yevhen
а какая у вас версия электрона?
Сергій
3.0.0
Yevhen
у меня 4
Сергій
можно код где у вас происходит инициализация окна?
Yevhen
https://jsfiddle.net/yc1o6vb4/
Yevhen
по сути весь код