Electron JS Заголовок программы | Безрамочное окно
HTML-код
- Опубликовано: 22 янв 2021
- В этом видео мы разберем установку заголовка разными способами в Electron, а так же посмотрим как создавать безрамочные окна и работать с основным процессом из рендер-процесса.
⚠️Помощь проекту⚠️:
money.yandex.ru/to/4100170578...
www.donationalerts.ru/r/131_fe...
⚠️Соцсети⚠️
vk.com: https: cyberhaus
Telegramm: t.me/cyberhaus
Twitter: / arhfedos
Спасибо за урок, пожалуйста не закидывай этот курс по electron js. Сейчас возможно ни кто не смотрит но позже люди начнут смотреть и подписываться. В юутбе мало уроков по electron js сделай его полностью и качественно. Ребят давайте поддержим автора лайком подпиской и коментарем. СyberHaus тебе желаю здоровье и терпения!!! Спасибо за урок!!!
Спасибо за развернутый комментарий и пожелания, такие комментарии очень вдохновляют на создание новых видео. Я рад что мои видео полезны. Обязательно доведу курс по ElectronJS до конца, в данный момент уже готовится следующее видео и в ближайшие дни я его выложу. Буду стараться не затягивать с новыми видео.
@@CyHaus давай, я специально для этого подписался
@@ivanvana завтра будет новое видео
Огромное спасибо! Как раз искал урок по своему декорированию рамки окна.
Спасибо за уроки по Electron!))) Продолжай пожалуйста снимать ролики про него) Очень интересно и доступно все рассказываешь)))
Спасибо за обучалку, на ютубе мало видео по електрону. Даже на данный момент
спасибо, очень хорошо и подробно все разъяснено
Круто, молодец
круто, делай еще уроки!!)
Очень хорошо
Видно, что разбирающийся человек
Строка const remote = require("electron").remote; вызывает ошибку. Как ее исправить? В консоли: require is not defined.
Эта проблема 12 версии электрона.
Для решения в webPreferences добавьте строчку:
contextIsolation: false
Я надеюсь, что ты сможешь делать еще уроки. А пока подписался, чтобы не пропустить новый ролик
15:20 все дополнительные подключаемые модули надо "разрешать" в вебПреференсес? И что за варнинг при запуске приложений?
Нет необходимости разрешать все дополнительные модули, в прошлых версиях Electron не требовалось включать и remote но вот в новой версии по умолчанию remote отключен и его надо включать.
Предупреждение говорит о том что у рендер-процесса не заданна политика безопасности. В нашем случае нет угрозы безопасности так как мы не загружаем удаленный web-контент. Сообщение можно выключить добавив в html документ, в тег head meta тег:
@@CyHaus В документации где-то указано, какие модули включены или выключены по умолчанию?. Начиная кажется с 10й версии выключили так же возможность открывать новые окна из текущего окна приложения. Теперь нельзя создавать новый БраусерВиндов в коде запущенного приложения а надо посылать "сигнал" основному скрипту, указанному в пакейдж, что бы он открыл и прислал ответ. и обмениваться данными между окнами через то ли ивенты через главный скрипт, толи еще что то. Мои старые эксперименты в электроне теперь не работают из-за этого. пытаюсь понять как теперь с этим управляться.
Еще было бы интересно понять, как изначально начать делать мультиплатформенное приложение, что бы и на сервере работало как веб версия, и откомпилировать под вин/макос. в часности работа с файлами (загрузить файл, проделать с ним манипуляции, сохранить файл.) если в ос это будет через Диалог то будет ли оно работать в веб версии. или нужно учитывать какие то условия и использовать разные подходы. Например free-tex-packer.com/ - есть как и веб версия и под десктоп. написано, что создано на электроне.
@@ALeXSagittarius Всё что касается разрешений указано в документации класса BrowserWindow, объекта webPrefences. Судя по всему изменения затронули только remote.
А вот почему у вас не работает создание окна из рендер-процесса, это странно. Если вы создаете новое окно через new BrowserWindow, то всё по идее должно работать. Я не нашел никаких замечаний на этот счет в документации. Я не знаю каким образом вы реализовали создание нового окна, по этому мне сложно подсказать вам решение проблемы.
Что касается разработки веб-версии и десктопной на электроне, то тут конечно есть нюансы и различия которые необходимо учитывать при разработке. В веб-версии на сервере не будет возможности использовать методы электрона для вызова диалогов открытия/сохранения файлов.
Браузер не позволяет напрямую работать с файловой системой пользователя, тут придется писать разную реализацию для веб-версии и для электрона.
Спасибо большое за урок, и курс.
Несмотря на то, что у меня стоит:
nodeIntegration: true,
enableRemoteModule: true,
По непонятной причине, ловлю ошибку: uncaught referenceerror require is not defined
Смог пофиксить только через:
contextIsolation: false,
Правда не очень понял, что я сделал и на что еще это повлияет.
Эта проблема возникла с выходом 12 версии. Кода я начинал записывать курс была версия 11.x и там не было этой проблемы, а вот сейчас я столкнулся с этой проблемой обновив электрон до 12 версии. Вы всё верно сделали отключив изоляцию контента (contextIsolation: false). Дело в том что до 12 версии в электроне изоляция контента по умолчанию была выключена, а вот в 12 версии этот параметр включен по умолчанию. Свойство contextIsolation отвечает за изоляцию скриптов рендер процесса и при включенном состоянии у скриптов рендер процесса нет доступа к API Электрона, отсюда и ошибка require is not defined.
Включать это свойство полезно в случае если мы загружаем неизвестный нам удаленный контент. В этом случае мы предотвращаем выполнение вредоносного кода. А в случае когда мы загружаем локальные файлы нет необходимости включать изоляцию. Стоит еще отметить что при включенной изоляции доступ к API электрона есть у скрипта предварительной загрузки (preload.js). Я сейчас готовлю урок по работе с файлами, а потом выпущу видео по этой проблеме.
Про что планируется следующее видео?
В следующем видео разберем класс Menu.
getCurrentWindow undefined даже при contextIsolation:false,
enableRemoteModule: true
к сожалению в Electron v 16.x убрали возможность получить прямой доступ к API Electron и NodeJS из рендер процесса.
Теперь можно получить доступ к АПИ только при помощи отправки сообщений ipcRender / ipcMain а также contextBridge
Из-за того что в 16 версии довольно значительные изменения цикл уроков придется переписывать т.к. половина не работает. Не знаю когда дойдут руки до того чтобы переписать курс...
@@CyHaus спасибо за ответ, уже узнал что remote и прочее устарело
спасибо за инфу о ipc
если перезапишете, то обязательно посмотрю
@@skrepkaskrepka2173 ты смог исправить?
@@abanent20 да , но я забыл уже как :D
@@abanent20 короче не смотри этот видос, он устарел и бесполезен