Dmitry
Можно использовать indexedDB, есть библиотека idb, которая упрощает работу с ним.
Kirill
Можно просто писать в файл, типа in-memory база
Kirill
Если совсем ни во что вникать не хочется
Ilvir
в файлах храни
Timur
Всем спасибо! Попробую indexedDB и idb. Если не получиться буду в файлах хранить
Electron.js releases
v14.0.0-nightly.20210322 https://github.com/electron/electron/releases/tag/v14.0.0-nightly.20210322 v14.0.0-nightly.20210322
Electron.js releases
v13.0.0-beta.7 https://github.com/electron/electron/releases/tag/v13.0.0-beta.7 v13.0.0-beta.7
Nikita
А, та провтыкали может
Ага. Подтвердили, говорят, пофиксили: > 12.0.1 was mislabelled due to an internal tooling error and should have been 12.1.0. We've fixed the issue so it shouldn't happen again :)
Мира
Через сиквелайз проще всего подключить файл с бд
Мира
Но проще просто локалстора SQLite это так, если совсем большие данные (больше 3мб, или скок там локалстора может хранить)
Anonymous
подскажите пожалуйста как в приложении електорн сварганить гугл авторизацию?
Ilvir
как и везде)
Ilvir
почему?
Vadim
Там есть свои нюансы. Главное правило использовать браузер для открытия страницы авторизации, иначе гугл забанит аккаунт
Vadim
И да, оно будет работать даже если открывать в самом электроне, может работать очень долго, но бан будет, проверял лично.
Ilvir
that makes sense
Nikita
Можно перехватить хттп через штатные средства электрона и отдавать как бы с него. И поправить юзерагент. Но это только если какого-то хитрого детекта в рантайме нет.
Nikita
Но а прод не надо такое, если это нарушает правила гугла
Vadim
А на страницах с хттп (не хттпс) он работает?
Нет, почти всегда OAuth только по https. Гугл вроде не исключение
Nikita
Ну тогда сервер поднимать, что.
Nikita
И открывать в браузере. А на странице возврата сделать кастомный протокол (кнопкой "вернуться в приложение", например). Который привязать к своему приложению на электроне.
Nikita
И открывать в браузере. А на странице возврата сделать кастомный протокол (кнопкой "вернуться в приложение", например). Который привязать к своему приложению на электроне.
Ну или без кнопки и протокола синкаться через сервер, страницу возврата закрыть автоматом. Но тогда фокус приложения надо ручками поднимать. Что, впрочем, проще будет.
Vadim
Nikita
Сможешь описать порядок действий?
Приложение открывает вебсокет к серверу и ждёт подтверждения. Когда в браузере открывается страница возврата, сервер получает данные, посылает их в клиент по вебсокету. Страница закрывается сама через window.close. Когда приложение получает данные по вебсокету, оно закрывает его и фокусируется.
Nikita
Это будет достаточно быстро, чтобы выглядело моментально как одно действие.
Vadim
Как сервер подтвердит авторизацию?
Vadim
Необходимо отличать клиентов, я помню там есть специальный state вроде, но не уверен
Nikita
Надо смотреть детали, но я не вижу чем вот этот кусок отличается от кастомного протокола. Смысл протокола только в том, чтобы передать данные (и фокус) из страницы возврата в приложение, но это можно сделать и по схеме выше
Nikita
Если не пробрасывается то да, надо делать протокол или привязку другим способом. С протоколом возня в зависимости от платформы ещё будет...
Nikita
Достаточно генерить случайный токен (достаточно сильный) и передавать его при открытии сокета.
Margosha
Что лучше: электрон или взять какой-нить гоу и васмом?
Timur
Вопросик.❓ Вот код для создания таблицы из csv файла. И код, и файл лежат на ПК.(Всё как будет в электроне) Файл вытаскиваю через $.get. (Код на JS+jquery 3.6.0). Выдаёт ошибку о том что нельзя сайтам через браузер брать файлы клиента. (Access to XMLHttpRequest at 'file:///...../names.csv' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, brave, chrome-untrusted, https.) Но у меня ПК используется сам как сервер :) :) Таким образом браузер файлам с сервера запрещает доступ к другим файлам сервера. Можно попробовать open server, но на электроне то его не будет!! Как это реализуют? Что делать???? Фото с кодом js прикрепил.
Timur
ААА.. не прикрепил
Timur
А ещё варианты есть? Node.js сложный и я хотел без него обойтись...
Maksim
А ещё варианты есть? Node.js сложный и я хотел без него обойтись...
да тебе нужно-то только fs.readFileSync сделать и все, ты получишь содержимое файла
Maksim
JS сам по себе запрещает через браузер взаимодействовать с файлами, не важно сервер у тебя или нет. Может есть какие-то библиотеки для этого, но какой в них смысл если ты юзаешь электрон, в котором есть node.js. Он не такой уж и сложный на самом деле. Тем более тебе нужна только работа с файлами, а не всю ноду изучать)
Timur
Или его вообще подключать не надо? Он встроен в электрон? А тестировать без электрона как? Только через open server или можно иначе?
azabroflovski
очередной троль
azabroflovski
тролль*
Timur
Это шутка такая?
Timur
Или тестировать тоже через электрон?
Ilvir
почитай что такое электрон
Maksim
что значит через электрон? ты пишешь программу или в электроне, или просто делаешь приложение в браузере или сайт
cobrascript
А затем....
И кури доку
azabroflovski
А затем....
Куда торопитесь, лучше вот так 1. Основы js 2. Затем Electron
azabroflovski
Пункт № 1 я уже прошёл!(Именно там)
Здорово, теперь пункт второй, многие вопросы отпадут
Timur
А оттуда меня отправили сюда!
Ilvir
если без электрона - делай инпут тип файла. И читай его через js/jquery
Maksim
так ему в электрон потом надо. не знаю зачем изобретать велосипед) сразу нужно делать в электроне, а не "встраивать" потом какие-то написанные вещи. я лично не особо понимаю смысл в этом🤷‍♂️
Timur
Ok значит тестировать теперь буду через электрон.
Ilvir
Значит я делаю страницы на html и js с расчётом на встраивание в electron
электрон дает тебе доступы к api node, в том числе работа с файловой системой. Если ты пока не встроил проект в электрон, и делаешь без него. Не надо такие вопросы к электрону приписывать)
Timur
Всё, першёл на тестирование прямо внутри электрона, но с node js ещё не понятно. Делал как тут: https://www.electronjs.org/docs/tutorial/quick-start#nodejs-api и читал по функции fs.readFileSync, но всё приводит к ошибкам и отсутствию результата.
Timur
Это код js файла который подключен к index.html
Данил
Это код js файла который подключен к index.html
мне кажется вы забыли добавить nodeIntegration: true
Timur
Нет, не кажется. Подскажите, а это у вас какой файл открыт?
Ilvir
😀
Ilvir
main.js
Ilvir
в корне проекта
Данил
Нет, не кажется. Подскажите, а это у вас какой файл открыт?
Сам файлик — или index.js, или main.js, или <как угодно>.js — а) путь к нему задается аргументом при запуске electron во время разработки б) название этого файла указывается в поле "main" внутри package.json для собранной версии мне интересно, а как вы запустили электрон, если не знаете, что это за файлик?)))
Margosha
А какие есть техники защиты приложения электроновского приложения? Асар мб как-то защитить можно?
Margosha
А то все совсем как-то открыто, кроме обфускации не вижу выходов
Electron.js releases
v14.0.0-nightly.20210323 https://github.com/electron/electron/releases/tag/v14.0.0-nightly.20210323 v14.0.0-nightly.20210323