Георгий
Пытаюсь просто сравнить ща со своим кодом, вспомнил, что я его тоже использую и у меня вроде ничего не запрашивается. Хотя в основном, конечно, виндовая версия тестируется и используется юзерами
eden
А, это же запрос на разрешение доступа к кейчейн типо, он один раз запрашивается, да
там есть возможность кликнуть Always allow, но честно говоря, я бы на месте пользователя послал такое приложение, которое непонятно зачем ломится в мой keychain
Георгий
eden
Ну тут, кажись, только как-то объяснять пользователю зачем это надо через нотификейшн/модалку там
спасибо, но это прямо на крайний случай, и то мне кажется, не особо поможет
eden
остальные же как-то обходят это
Георгий
остальные же как-то обходят это
шифруют сами что надо не через safeStorage думаю
eden
шифруют сами что надо не через safeStorage думаю
а это только для шифрования используется? я думал, мой токен физически хранится в keychain
eden
Нет, токен ты кладёшь куда сам хочешь потом
точно, спасибо! Это всё меняет, я лучше сам тогда зашифрую как-нибудь)
eden
хотя уже не так секьюрно будет, конечно, к сожалению
Георгий
хотя уже не так секьюрно будет, конечно, к сожалению
Ну тут да, сейчас понял что у меня на маке тоже просит доступ к кейчейну и никто даже ни разу не возмутился из пользаков
eden
Ну тут да, сейчас понял что у меня на маке тоже просит доступ к кейчейну и никто даже ни разу не возмутился из пользаков
у меня пользователи возмущались, что я запрашиваю доступ к списку контактов, хотя мне это надо для того чтобы гостей в события на календаре можно было добавлять
eden
в общем, не хочется рисковать)
eden
лол, ну это паранойя уже немного
здоровая! на мой взгляд
Георгий
здоровая! на мой взгляд
Та всё равно уже в открытом доступе всё что надо валяется, вот госуслуги пару лет назад бахнули, недавно по приколу пошёл поискал инфу про себя по номеру телефона просто. Нашёл номер паспорта, СНИЛС и ИНН ._.
Георгий
5 кредитов и 3 свидетельства о браке ))
Слава Дарвину без такого 🗿
Yuri
Нахрена вообще хранить настройки приложения в платформозависимых хранилищах?
eden
Нахрена вообще хранить настройки приложения в платформозависимых хранилищах?
мне авторизационный токен надо сохранить секьюрно, все остальные настройки я храню на сервере либо в локал сторадже
Георгий
Вот читаешь в гите steiger'a описание к правилу, а тут камео
Галина
Vladimir
Здравствуйте, подскажите, как автоматически сохранить файл без показа диалогового окна? И webContents.downloadURL(), и session.downloadURL() открывают окно сохранения файла.
Vladimir
Отправить команду в main процесс, где будет использован "node:fs/promises"
Не могу передать Uint8Array через ipcRenderer.invoke(), ошибка: Uncaught Error: An object could not be cloned. at HTMLAnchorElement.<anonymous> (renderer.js:33:24) (anonymous) @ renderer.js:33 В документации написано, что TypedArray поддерживается, почему ошибка?
Vlad
Не могу передать Uint8Array через ipcRenderer.invoke(), ошибка: Uncaught Error: An object could not be cloned. at HTMLAnchorElement.<anonymous> (renderer.js:33:24) (anonymous) @ renderer.js:33 В документации написано, что TypedArray поддерживается, почему ошибка?
const uint8Array = new Uint8Array([1, 2, 3, 4]); ipcRenderer.invoke('some-channel', Array.from(uint8Array)); ipcMain.handle('some-channel', async (event, dataArray) => { const uint8Array = new Uint8Array(dataArray); // обработка });
Алексей
Преобразуй в обычный массив и потом обратно на стороне рендера
Vladimir
Судя по всему, это из-за того, что массив я изначально получил из main процесса и его же передаю обратно в main. Можете вкратце объяснить, что при этом происходит? Я просто JS плохо знаю.
Sergey
конвертация массивов, особенно больших не всегда быстрая операция а если можно ее избежать, то лучше избежать
Vladimir
а зачем из main в main через renderer передавать?
Массив будет меняться, я просто сохранение в файл хотел проверить. А сейчас интересно, почему если тот же массив передавать обратно в main, возникает ошибка. Наверное, это как-то с detached связано?
Sergey
без текста ошибки только гадать
Vlad
Судя по всему, это из-за того, что массив я изначально получил из main процесса и его же передаю обратно в main. Можете вкратце объяснить, что при этом происходит? Я просто JS плохо знаю.
да просто у Uint8Array либо свойство есть не клонируемое, либо вложенность, либо прототип переопределен еще чем-то. Не может клонировать - сыпет эксепшн. Приводя к массиву выпилит все что не нужно для сериализации и прокинет без проблем
Vladimir
Я разобрался, почему такое поведение: в массиве хранится PDF-файл, который я отображаю с помощью библиотеки pdf.js. Так вот после загрузки массива в эту библиотеку массив переходит в состояние detached.
eden
пытаюсь хранить настройки в keychain, и моё приложение теперь спрашивает пароль от него. Ни разу такого в других приложениях не видел. Как от этого избавиться, подскажите, пожалуйста? использую две эти штуки: import { safeStorage } from 'electron'; import Store from 'electron-store';
создал электрон приложение с нуля, добавил туда код со своего основного приложения, который сохраняет токен используя safeStorage и... доступ к keychain не запрашивается.. что за магия..
Yuri
I dunno
eden
нуу.. версии конечно отличаются, но мне кажется маловероятно, что в этом причина. попробую на всякий случай обновиться
eden
короче, оказалось, что проблема в том, что я сменил тиму под которой подписывал приложение..
Yuri
Спасибо что поделился 👍 Не знал что это может аффектить доступ к кейстору
Paul Rogov
Ребят, подскажите пожалуйста, насколько адекватная идея, просто обернуть react-сайт с хорошей responsive версткой и вызвать и как: mainWindow.loadURL('https://trello.com/'); Конечная цель - desktop приложения сайта типо bitrix/jira. Каких проблем можно отхватить?
Paul Rogov
вроде так иногда делают, есть даже приложения, которые примерно этим и занимаются - оборачивают существующий сайт в электрон обёртку
да, нашел список проблем подобного решения: https://github.com/nativefier/nativefier/issues?q=is%3Aissue%20state%3Aclosed как я понял, часто проблемы с: - доп. уязвимости появляются - аутентификацией - нативным api (камера, микрофон, шарить экран) - возможно drag-n-drop в целом возможно валидно.
eden
да, думаю примерно так. Только доп. уязвимостей сходу не вижу, но я не спец в этом
Mimik
Ребят, подскажите пожалуйста, насколько адекватная идея, просто обернуть react-сайт с хорошей responsive версткой и вызвать и как: mainWindow.loadURL('https://trello.com/'); Конечная цель - desktop приложения сайта типо bitrix/jira. Каких проблем можно отхватить?
Проблема 1, пропал интернет, увы, все приложение превратилось в тыкву. 2 кастомный стор пароля и баги в js которые позволят через xss заразить пк.. а так никаких :)
Paul Rogov
Вопрос сходу - для чего? В чем смысл если можно открыть ярлык в браузере
Это хороший вопрос. Notion, Figma и другие сервисы делают desktop-приложения. Figma мне нравится такая настольная версия. Не помню, работает ли она без сети. Вопрос, чем реально десктоп версии сайтов отличаются
nikolay
В электроне уже есть браузер, получается меняете хром на хром, с другой версией. Всё это в оболочке exe, с установкой. Localstorage скорее всего из коробки не будет работать. Авторизации гугл и прочее. Кукки скорее всего не сохранятся после закрытия. Скачивание файлов как себе представляете? Всё это выглядит крайне сомнительно.
Paul Rogov
В электроне уже есть браузер, получается меняете хром на хром, с другой версией. Всё это в оболочке exe, с установкой. Localstorage скорее всего из коробки не будет работать. Авторизации гугл и прочее. Кукки скорее всего не сохранятся после закрытия. Скачивание файлов как себе представляете? Всё это выглядит крайне сомнительно.
у этого сервиса nativefier 35к звезд. там люди сделали доку, с дополнительными командами ровно для описанных вами кейсов: - фиксы аутентификации в сервисах - локальное хранилище - скачивание файлов https://github.com/nativefier/nativefier/blob/master/CATALOG.md#google-apps А другие целый сервис сделали с mac/windows версиями популярных сайтов: https://webcatalog.io/en/desktop конечно наверняка там много нюансов, но у меня частично даже next.js-проект с серверными компонентами завелся в electron-приложении.
Ахмед
Слушайте, наверно я отстал от новостей или сейчас как базовый шаблон vite + vue + electron, теперь применяют ооп? скачал я значит шаблон а тут тс, и сам электрон теперь через тс рендерится
nikolay
вообще с появлением нейросеток ts не должен являться какой то проблемой. и в vite, ts скорее всего можно выключить
Ахмед
Ушла эпоха
Тьома
Он сейчас популярнее всех языков
Тьома
тем более большая часть фронта на джс написана как раз таки
Ratatata
Он сейчас популярнее всех языков
Он имел ввиду что сейчас писать на голом js, а не на ts это как спать с портовой проституткой. Ты гарантировано получишь сифак и тд
🅰️nimeCoder
На js сейчас почти никто не пишет
чуть не грохнулся от смеха
Ratatata
Пу-пу-пу
🅰️nimeCoder
Он имел ввиду что сейчас писать на голом js, а не на ts это как спать с портовой проституткой. Ты гарантировано получишь сифак и тд
на тс ты будешь думать что сифака нет, но потом пройдешь тест и окажется что там полный комплект
🅰️nimeCoder
😁 скорее ты будешь уверен что его нету
Ratatata
на тс ты будешь думать что сифака нет, но потом пройдешь тест и окажется что там полный комплект
Ну тс все равно даёт гарантию минимальную, как презик, что писюн не сразу отвалиться
🅰️nimeCoder
презик по надежнее
хотя так то держу вкурсе от заразы он мало защищает
🅰️nimeCoder
в основном только от детей)
Тьома
бля чё я делаю вообще в фронт-енд чате я же бек