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

Комментарии • 29

  • @bistronousogust
    @bistronousogust Месяц назад

    Огромное спасибо! Как раз искал урок по своему декорированию рамки окна.

  • @user-mz6jw7xx2z
    @user-mz6jw7xx2z 3 года назад +18

    Спасибо за урок, пожалуйста не закидывай этот курс по electron js. Сейчас возможно ни кто не смотрит но позже люди начнут смотреть и подписываться. В юутбе мало уроков по electron js сделай его полностью и качественно. Ребят давайте поддержим автора лайком подпиской и коментарем. СyberHaus тебе желаю здоровье и терпения!!! Спасибо за урок!!!

    • @CyHaus
      @CyHaus  3 года назад +6

      Спасибо за развернутый комментарий и пожелания, такие комментарии очень вдохновляют на создание новых видео. Я рад что мои видео полезны. Обязательно доведу курс по ElectronJS до конца, в данный момент уже готовится следующее видео и в ближайшие дни я его выложу. Буду стараться не затягивать с новыми видео.

    • @ivanvana
      @ivanvana 3 года назад +2

      @@CyHaus давай, я специально для этого подписался

    • @CyHaus
      @CyHaus  3 года назад +2

      @@ivanvana завтра будет новое видео

  • @stivem9523
    @stivem9523 3 года назад +1

    Спасибо за уроки по Electron!))) Продолжай пожалуйста снимать ролики про него) Очень интересно и доступно все рассказываешь)))

  • @ZyreXvx
    @ZyreXvx Год назад

    Спасибо за обучалку, на ютубе мало видео по електрону. Даже на данный момент

  • @neofitomega841
    @neofitomega841 2 года назад

    спасибо, очень хорошо и подробно все разъяснено

  • @GELIC
    @GELIC Год назад

    Круто, молодец

  • @sergeystroitelev1964
    @sergeystroitelev1964 3 года назад

    круто, делай еще уроки!!)

  • @ivanvana
    @ivanvana 3 года назад

    Очень хорошо

    • @ivanvana
      @ivanvana 3 года назад

      Видно, что разбирающийся человек

  • @HananoKairo
    @HananoKairo 3 года назад

    Я надеюсь, что ты сможешь делать еще уроки. А пока подписался, чтобы не пропустить новый ролик

  • @natalianatalia3357
    @natalianatalia3357 3 года назад +1

    Строка const remote = require("electron").remote; вызывает ошибку. Как ее исправить? В консоли: require is not defined.

    • @CyHaus
      @CyHaus  3 года назад +4

      Эта проблема 12 версии электрона.
      Для решения в webPreferences добавьте строчку:
      contextIsolation: false

  • @ALeXSagittarius
    @ALeXSagittarius 3 года назад

    15:20 все дополнительные подключаемые модули надо "разрешать" в вебПреференсес? И что за варнинг при запуске приложений?

    • @CyHaus
      @CyHaus  3 года назад +2

      Нет необходимости разрешать все дополнительные модули, в прошлых версиях Electron не требовалось включать и remote но вот в новой версии по умолчанию remote отключен и его надо включать.
      Предупреждение говорит о том что у рендер-процесса не заданна политика безопасности. В нашем случае нет угрозы безопасности так как мы не загружаем удаленный web-контент. Сообщение можно выключить добавив в html документ, в тег head meta тег:

    • @ALeXSagittarius
      @ALeXSagittarius 3 года назад

      @@CyHaus В документации где-то указано, какие модули включены или выключены по умолчанию?. Начиная кажется с 10й версии выключили так же возможность открывать новые окна из текущего окна приложения. Теперь нельзя создавать новый БраусерВиндов в коде запущенного приложения а надо посылать "сигнал" основному скрипту, указанному в пакейдж, что бы он открыл и прислал ответ. и обмениваться данными между окнами через то ли ивенты через главный скрипт, толи еще что то. Мои старые эксперименты в электроне теперь не работают из-за этого. пытаюсь понять как теперь с этим управляться.
      Еще было бы интересно понять, как изначально начать делать мультиплатформенное приложение, что бы и на сервере работало как веб версия, и откомпилировать под вин/макос. в часности работа с файлами (загрузить файл, проделать с ним манипуляции, сохранить файл.) если в ос это будет через Диалог то будет ли оно работать в веб версии. или нужно учитывать какие то условия и использовать разные подходы. Например free-tex-packer.com/ - есть как и веб версия и под десктоп. написано, что создано на электроне.

    • @CyHaus
      @CyHaus  3 года назад +1

      @@ALeXSagittarius Всё что касается разрешений указано в документации класса BrowserWindow, объекта webPrefences. Судя по всему изменения затронули только remote.
      А вот почему у вас не работает создание окна из рендер-процесса, это странно. Если вы создаете новое окно через new BrowserWindow, то всё по идее должно работать. Я не нашел никаких замечаний на этот счет в документации. Я не знаю каким образом вы реализовали создание нового окна, по этому мне сложно подсказать вам решение проблемы.
      Что касается разработки веб-версии и десктопной на электроне, то тут конечно есть нюансы и различия которые необходимо учитывать при разработке. В веб-версии на сервере не будет возможности использовать методы электрона для вызова диалогов открытия/сохранения файлов.
      Браузер не позволяет напрямую работать с файловой системой пользователя, тут придется писать разную реализацию для веб-версии и для электрона.

  • @otakusama94
    @otakusama94 3 года назад

    Спасибо большое за урок, и курс.
    Несмотря на то, что у меня стоит:
    nodeIntegration: true,
    enableRemoteModule: true,
    По непонятной причине, ловлю ошибку: uncaught referenceerror require is not defined
    Смог пофиксить только через:
    contextIsolation: false,
    Правда не очень понял, что я сделал и на что еще это повлияет.

    • @CyHaus
      @CyHaus  3 года назад

      Эта проблема возникла с выходом 12 версии. Кода я начинал записывать курс была версия 11.x и там не было этой проблемы, а вот сейчас я столкнулся с этой проблемой обновив электрон до 12 версии. Вы всё верно сделали отключив изоляцию контента (contextIsolation: false). Дело в том что до 12 версии в электроне изоляция контента по умолчанию была выключена, а вот в 12 версии этот параметр включен по умолчанию. Свойство contextIsolation отвечает за изоляцию скриптов рендер процесса и при включенном состоянии у скриптов рендер процесса нет доступа к API Электрона, отсюда и ошибка require is not defined.
      Включать это свойство полезно в случае если мы загружаем неизвестный нам удаленный контент. В этом случае мы предотвращаем выполнение вредоносного кода. А в случае когда мы загружаем локальные файлы нет необходимости включать изоляцию. Стоит еще отметить что при включенной изоляции доступ к API электрона есть у скрипта предварительной загрузки (preload.js). Я сейчас готовлю урок по работе с файлами, а потом выпущу видео по этой проблеме.

  • @ALeXSagittarius
    @ALeXSagittarius 3 года назад

    Про что планируется следующее видео?

    • @CyHaus
      @CyHaus  3 года назад +1

      В следующем видео разберем класс Menu.

  • @skrepkaskrepka2173
    @skrepkaskrepka2173 2 года назад

    getCurrentWindow undefined даже при contextIsolation:false,
    enableRemoteModule: true

    • @CyHaus
      @CyHaus  2 года назад

      к сожалению в Electron v 16.x убрали возможность получить прямой доступ к API Electron и NodeJS из рендер процесса.
      Теперь можно получить доступ к АПИ только при помощи отправки сообщений ipcRender / ipcMain а также contextBridge
      Из-за того что в 16 версии довольно значительные изменения цикл уроков придется переписывать т.к. половина не работает. Не знаю когда дойдут руки до того чтобы переписать курс...

    • @skrepkaskrepka2173
      @skrepkaskrepka2173 2 года назад

      @@CyHaus спасибо за ответ, уже узнал что remote и прочее устарело
      спасибо за инфу о ipc
      если перезапишете, то обязательно посмотрю

    • @abanent20
      @abanent20 2 года назад

      @@skrepkaskrepka2173 ты смог исправить?

    • @skrepkaskrepka2173
      @skrepkaskrepka2173 2 года назад

      @@abanent20 да , но я забыл уже как :D

    • @skrepkaskrepka2173
      @skrepkaskrepka2173 2 года назад

      @@abanent20 короче не смотри этот видос, он устарел и бесполезен