Dima
Dima
самое главное - изменятся разные security defaults
Anonymous
Alexander
Привет ребят, подскажете, как можно Вырезать из електрона инструменты разработчика и верхнюю панель (file,edit,view ...)???
Для дальнейшей компиляции приложения
Pavel
ее на проде и так не будет
Pavel
при дебаге будет
Сергій
Люди вы документалкой пользоваться умеете? Там все пишет местами даже на русском
Alexander
Ладно, позвольте продолжить марафон глупых вопросов?
Я просто в коде для некоторых операций с локальной системой баш скрипты через child_process это никак не отразится на компиляции?
Сергій
По идеи не должно
Сергій
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
Может есть какие-то другие более цивильные методы
Сергій
нужно менять настройки?
Vadim
Anton
нужно менять настройки?
Да, пользователь может менять. Настройка автозапуска например или открытие в фоне или на весь экран
Anton
Сергій
я храню просто в отдельном json файле в app.getPath("userData") прочитайте в документалке полезная фича
Anton
Vadim
Да, но разве вы не любите сахар?
Anton
))
Сергій
не знаю поскольку не было нужды этим пользоваться
Anton
И еще мелкий вопрос, можно ли как-то цепануть первичное открытие приложение после установки? Порылся в документации, не нашел какого-нибудь подобного флага или события. Чтобы например выставить autostart только при первом запуске.
Сергій
просто добавь в тот же конфиг себе какой-то флажок или в localsotrage
Vadim
ТЫ можешь в настройки прописывать флаг
Vadim
++
Anton
Это самой собой, поэтому я и спрашивал сначала, кто как хранит настройки) Вопрос был именно есть ли встроенный в электроне такой флажок, как я уже понял нет)
Anton
Спасибо
S
парни привет,я так понял у всех загружается хромиум последней версии? Получается я могу на всю катушку использовать возможности хромиума?
Sergey
Sergey
У каждого релиза электрона жёстко забита версия хромиума и ноджс
Bet1x
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
по сути весь код