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 :)
Anonymous
Мира
Мира
Через сиквелайз проще всего подключить файл с бд
Мира
Но проще просто локалстора
SQLite это так, если совсем большие данные (больше 3мб, или скок там локалстора может хранить)
Anonymous
подскажите пожалуйста как в приложении електорн сварганить гугл авторизацию?
Ilvir
как и везде)
Vadim
Ilvir
почему?
Vadim
Там есть свои нюансы. Главное правило использовать браузер для открытия страницы авторизации, иначе гугл забанит аккаунт
Vadim
И да, оно будет работать даже если открывать в самом электроне, может работать очень долго, но бан будет, проверял лично.
Nikita
Ilvir
that makes sense
Nikita
Можно перехватить хттп через штатные средства электрона и отдавать как бы с него. И поправить юзерагент.
Но это только если какого-то хитрого детекта в рантайме нет.
Nikita
Но а прод не надо такое, если это нарушает правила гугла
Nikita
Vadim
Nikita
Ну тогда сервер поднимать, что.
Nikita
И открывать в браузере.
А на странице возврата сделать кастомный протокол (кнопкой "вернуться в приложение", например).
Который привязать к своему приложению на электроне.
Vadim
Nikita
Vadim
Vadim
Nikita
Сможешь описать порядок действий?
Приложение открывает вебсокет к серверу и ждёт подтверждения.
Когда в браузере открывается страница возврата, сервер получает данные, посылает их в клиент по вебсокету.
Страница закрывается сама через window.close.
Когда приложение получает данные по вебсокету, оно закрывает его и фокусируется.
Nikita
Это будет достаточно быстро, чтобы выглядело моментально как одно действие.
Vadim
Как сервер подтвердит авторизацию?
Vadim
Необходимо отличать клиентов, я помню там есть специальный state вроде, но не уверен
Nikita
Надо смотреть детали, но я не вижу чем вот этот кусок отличается от кастомного протокола.
Смысл протокола только в том, чтобы передать данные (и фокус) из страницы возврата в приложение, но это можно сделать и по схеме выше
Nikita
Nikita
Если не пробрасывается то да, надо делать протокол или привязку другим способом.
С протоколом возня в зависимости от платформы ещё будет...
Nikita
Nikita
Достаточно генерить случайный токен (достаточно сильный) и передавать его при открытии сокета.
Margosha
Что лучше: электрон или взять какой-нить гоу и васмом?
Vadim
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
Maksim
Timur
А ещё варианты есть? Node.js сложный и я хотел без него обойтись...
Timur
Maksim
JS сам по себе запрещает через браузер взаимодействовать с файлами, не важно сервер у тебя или нет. Может есть какие-то библиотеки для этого, но какой в них смысл если ты юзаешь электрон, в котором есть node.js. Он не такой уж и сложный на самом деле. Тем более тебе нужна только работа с файлами, а не всю ноду изучать)
Timur
Timur
Или его вообще подключать не надо? Он встроен в электрон? А тестировать без электрона как? Только через open server или можно иначе?
azabroflovski
очередной троль
azabroflovski
тролль*
Timur
Это шутка такая?
Timur
Или тестировать тоже через электрон?
Ilvir
почитай что такое электрон
cobrascript
Timur
Maksim
что значит через электрон? ты пишешь программу или в электроне, или просто делаешь приложение в браузере или сайт
cobrascript
azabroflovski
А затем....
Куда торопитесь, лучше вот так
1. Основы js
2. Затем Electron
Timur
Timur
Timur
А оттуда меня отправили сюда!
Ilvir
если без электрона - делай инпут тип файла. И читай его через js/jquery
Maksim
так ему в электрон потом надо. не знаю зачем изобретать велосипед)
сразу нужно делать в электроне, а не "встраивать" потом какие-то написанные вещи. я лично не особо понимаю смысл в этом🤷♂️
Timur
Ok значит тестировать теперь буду через электрон.
Timur
Всё, першёл на тестирование прямо внутри электрона, но с node js ещё не понятно. Делал как тут: https://www.electronjs.org/docs/tutorial/quick-start#nodejs-api и читал по функции fs.readFileSync, но всё приводит к ошибкам и отсутствию результата.
Timur
Это код js файла который подключен к index.html
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