Идель
Извне директории с программой, похоже, придётся base64 подсовывать
Илья
да это я понял но крайне не приятно
Илья
а если у меня файл весит к примеру гиг, как его конвертить
Илья
пока что непонятно как с этим работают
Идель
Похоже, это выключаемо в BrowserWindow webPreferences.webSecurity
https://github.com/electron/electron/blob/master/docs/api/browser-window.md#new-browserwindowoptions
Идель
Но я не знаю какие проблемы придут вместе с возможностью открывать любые картинки
Илья
да я это видел однако подумал что это не очень правильно
Илья
проверил
Илья
не помогло(
Идель
а в чём задача заключается?
Илья
вообще, я делаю плеер - чтобы изучить электрон, заодно что то полезное сделать,так вот задача простейшая, выбрать файлы и заставить их проигрываться) с base64 я уже проверил и все в принципе работает
Илья
но способ кажется явно костыльным
Илья
о
Илья
проверил одну догадку
Илья
в сбилденном приложении заработало через file
Илья
а через сборку вебпаковскую нет
Илья
что то я сразу не догнал
Идель
Я чёт завис с мыслью, почему мне тоже base64 кажется костылём. Объяснить в чём конкретно проблема я так и не смог)
Идель
Типа base64, кажется, нельзя стримить. Ок, но не всегда это надо
Возможно, base64 хуже работает, когда у тебя много одинаковых картинок. Но это не проверено и не всегда надо
Andrey 😼
Если передавать его по сети - то он добавляет к весу файлов N процентов (где N > 20)
Идель
Интересно. Наверное, если картинку в джейсон сохранить, то тоже потяжелее получится)
Анатолий
/help@GroupButler_bot
Anonymous
Anonymous
+ время на декодирование
Anonymous
Ohar
Завтра
Господа, 2 вопроса
- Можно ли подключаться к ipcMain electron приложения вне electron? Если да, то как
- Если поднимать свой вебсокет-сервер, то как стороннему приложению узнать порт, если он будет браться динамически (первый свободный начиная с 3000)
Lev
А зачем динамически?
Завтра
> это просто инстанс node EventEmmiter
а как фронт к нему подключается?
Завтра
ведь можно же кидать ивенты с фронта
Завтра
А зачем динамически?
потому что выбранный ручками порт может быть занят, а пилить для этого форму - лишние действия для юзера
Lev
А как же безопасность и фаерволы?)
Завтра
это будет открытое апи для продвинутых юзеров, безопасность - их проблемы
Anton
Завтра
(((
Anton
Пытался нагуглить…но не осилил
Завтра
вот я тоже пытался и не нашел ничего на эту тему
Завтра
в общем, я что хочу - у приложения есть определенные функции, и я хотел бы сделать возможность слушать события, когда они вызываются
Anton
Может так же как я предлагал решить если Node procces и его дочернии, работает главные процесс, а под ним уже дочернии View
Завтра
я бы мог втупую сделать вебсокет-сервер и просить юзера ручками вбить свободный порт, но это лишний геммор для него
Anton
> слушать события, когда они вызываются
Локально?
Завтра
локально
Завтра
но не в этом приложении
Завтра
просто поднять локальный сервер типа
Anton
Мультикаст тебе наверное не подойдет, потому что слушатель на стороне фронта
Anton
А если создать пул портов, и по очереди пытаться коннектиться к ним -> успех, сохраняешь где-то, что на таком-то порте повесил ws. А дальше по post запросу слушателя передаешь порт
Завтра
вот где-то - это где?
Anton
Ну вебсокет сервер ты поднимаешь в main process? Там и храни как константу
Андрей
Подскажите, пожалуйста, кто-нибудь создавал ассоциацию файлов и программы на Электроне? Чтобы при двойном щелчке по определенному файлу он открывался программой. И так же чтобы файл с этим типом имел собственный вид значка.
Перерыл весь интернет, но понимания не прибавилось. Единственное было упоминание, что в package.json нужно добавить свойство file-associations. Только это ничего не принесло:
"file-associations": {
"ext": [
"ktl"
],
"description": "Music file extension",
"role": "none",
"icon": "build/icon.ico"
}
Может кто знает в какую сторону нужно копать?
Sergey
Andrey
Для винды нет, для мака да. Прописывается в plist файл приложения и все отлично работает "из коробки".
Андрей
На Винде?
Вначале для Мака, потом для Виндоуса.
Andrey
В документации эппл, скину пример позже.
Andrey
Кстати, это можно сделать через electron-builder
https://www.electron.build/configuration/configuration
Andrey
https://gist.github.com/amka/1cdf0f87830740868a8ff1e05026f097
Я использую electron-packager, в нем файл InfoEx.plist добавляется через аргумент —extend-info=InfoEx.plist в котором указывается необходимое.
Андрей
Sergey
volandku
Можно пару вопросов от новичка?
volandku
Как реализовать паузу в выполнении кода? Такое возможно?
Andrey
пауза в выполнении повесит ваше приложение на время этой паузы (не всегда конечно). Полагаю, имеет смысл просто вызвать оконечную функциюю по истечении какого-то времени?
volandku
Andrey
Да пусть и не страшно, но зачем?
volandku
volandku
лимиты там по времени
Andrey
для этого нужно использовать Promise или async/await
volandku
то есть мне на одно дествие надо сделать 2-3 запроса и между ними бы выдержать секунду
Andrey
Просто обрабатываете результаты по завершении запроса и все.
volandku
volandku
надо именно выждатиь перед следующим
Andrey
setTimeout(func, 2000)
volandku
То есть только делить функцию на несколько?
Andrey
Если нужно «именно выжидать», то лучше разделить, хотя бы для простоты отладки
volandku
ясно,
volandku
а как грамотно организовать цикл в разметке? выносить всё в index.js или есть более читаемые методы?
Electron.js releases
v3.0.0-beta.2
https://github.com/electron/electron/releases/tag/v3.0.0-beta.2
v3.0.0-beta.2
Данил
ура
Sergey
а что пофиксили?