Как добавить веб-интерфейс в электронное приложение? - PullRequest
1 голос
/ 16 июня 2020

Я хочу создать настольное приложение с помощью Electron. Я знаю, что Electron обрабатывает и серверную, и интерфейсную часть, и я думаю создать приложение таким образом, чтобы эти две части были четко разделены.

В будущем я хочу создать веб-сайт, скорее всего, использующий React и приложение Electron в качестве сервера.

Поскольку Electron основан на NodeJs, я не понимаю, почему это невозможно. Я планирую предоставить некоторые API и веб-приложение для их использования. Таким образом, часть настольного приложения будет также сервером для веб-приложения.

Мои вопросы:

Насколько легко этого добиться?

И как это сделать этот подход стоит с точки зрения безопасности?

1 Ответ

0 голосов
/ 16 июня 2020

Насколько легко этого добиться?

Обычно довольно просто. Все, что вам нужно сделать, это создать электронный файл, который запускает ваш Node.js сервер на порту X, открывает BrowserWindow и дает команду BrowserWindow загрузить URL-адрес сервера: http://127.0.0.1:X.

Однако традиционный веб-сервер обычно имеет архитектуру, отличную от серверной части приложения Electron. Веб-серверы часто подключаются к центральной базе данных, содержащей данные для всех пользователей, в то время как серверная часть Electron управляет данными только одного пользователя. Это имеет несколько последствий:

  • Если серверная часть приложения Electron может хранить постоянные данные об одном пользователе, серверная часть веб-приложения, вероятно, будет хранить базу данных данных обо всех своих пользователях.
  • Если приложение Electron не хранит постоянные данные, а использует файловую систему для чтения и записи файлов, веб-приложению, вероятно, придется реализовать виртуальные файловые системы с базой данных или использовать изолированную файловую систему с чем-то вроде файловой системы. API .
  • Если приложение Electron не поддерживает ни одно из вышеперечисленных действий, подумайте, требуется ли вашему приложению бэкэнд. Возможно, удастся создать веб-приложение, используя только файлы stati c с чем-то вроде Gatsby , что, вероятно, будет лучше в качестве веб-страницы, чем приложение Electron.

А как обстоят дела с точки зрения безопасности при таком подходе?

Можно настроить ваш сервер на прослушивание localhost или 127.0.0.1. Это означает, что ваши данные передаются исключительно через устройство, а не по сети, что не позволяет посторонним перехватить их, если они уже не взломали устройство.

...