Dmitry
Electron-builder позволяет делать автоапдейт без сертификата
Vadim
Ну делай ручной апдейт Пока приложение не начало приносить доход. Никто не умрет от этого))
Автоапдейты на винде легко работают без сертификата. Лучши использовать electron-updater. Win32/macOS легко, а для линукса "есть маленький нюанс". Поддержка только AppImage, я пробовал, мне не нравится. Поэтому для линукса у меня самописный на deb пакетах => только Ubuntu (debian). Адресовано: Alex @AndreyTkachV
Vadim
То есть ты его покупаешь, а в итоге ничего. На хакерньюсе целый тред на 250 постов, где люди выливают боль из за бессмысленности сертификата
Ну у меня достаточно раскрученный уже продукт, так проблема с синим экраном слегка беспокоит пользователей, но это редко кого тормозит. То есть кол-во скачиваний приблизительно равно установкам.
Андрей
👍
Anton
Но я из под линукса билдил
Vadim
А что у тебя за проблемы были? У меня билдилось и .deb и app Image. Могу посмотреть конфиг если нужно
Hi, я имел ввиду поддержка апдейтером только при распространении AppImage. deb апдейтер не поддерживает, вроде как)
Ребята, всем привет) Подскажите пожалуйста, какой npm пакет может вот такую строку "Мы любим электрон💑" превратить в такую "Мы любим электрон \u1F491"?)))
@AleshaOleg Олег, подскажи пожалуйста вот ещё что🙏🏻 Вот пришла на вход строка и я не знаю где там могут находиться смайлики. Как можно определить смайлик, чтобы потом закинуть его в метод String.raw?
Oleh
А, надо со сторки вытащить.
Скобочки забыл
И так работает)
Alexiagray
И так работает)
Ну эт понятно, но более читабельный было бы со скобочками)
А, надо со сторки вытащить.
@AleshaOleg Не понимаю как😞😞😞
Oleh
Оки)))
Oleh
const rex = /[\u{1f300}-\u{1f5ff}\u{1f900}-\u{1f9ff}\u{1f600}-\u{1f64f}\u{1f680}-\u{1f6ff}\u{2600}-\u{26ff}\u{2700}-\u{27bf}\u{1f1e6}-\u{1f1ff}\u{1f191}-\u{1f251}\u{1f004}\u{1f0cf}\u{1f170}-\u{1f171}\u{1f17e}-\u{1f17f}\u{1f18e}\u{3030}\u{2b50}\u{2b55}\u{2934}-\u{2935}\u{2b05}-\u{2b07}\u{2b1b}-\u{2b1c}\u{3297}\u{3299}\u{303d}\u{00a9}\u{00ae}\u{2122}\u{23f3}\u{24c2}\u{23e9}-\u{23ef}\u{25b6}\u{23f8}-\u{23fa}]/ug const replaceEmojiWithUnicode = str => str.replace(rex, match => String.raw`\u${match.codePointAt(0).toString(16).toUpperCase()}`) replaceEmojiWithUnicode('Мы любим электрон💑')
Oleh
https://stackoverflow.com/a/59918357/3818282
Alexiagray
Лучше на npm поискать финдлер
https://stackoverflow.com/a/59918357/3818282
Третий ответ здесь больше понятен, лично для меня)) Сейчас попробую сам и если решу, то скину как это сделал)
Лучше на npm поискать финдлер
@Lolka21forever Что такое "финдлер"?)
Ребят, какую-то глупость сказал. Очень не внимательный. Там второй ответ прекрасно выполняет поставленную задачу
Erasyl Meiramov
Ребята, хочу посоветоваться, немного в раздумий или не могу выбрать какой приоритет выбрать, решаю читать книгу по CS или по JS? Знакомый который занимается с фронтом, говорить обходить учить CS нету, не то чтобы хотел быть js разрабом, просто немного запутался
Anonymous
Ребята, хочу посоветоваться, немного в раздумий или не могу выбрать какой приоритет выбрать, решаю читать книгу по CS или по JS? Знакомый который занимается с фронтом, говорить обходить учить CS нету, не то чтобы хотел быть js разрабом, просто немного запутался
Дружище, книги это здорово, но лучше всего - практика. На своём опыте скажу, что какой бы разработкой не занимался, тебе не хватит знания в чём-то одном конкретном, да, лишними они однозначно не будут, но когда ты берёшь за разработку, приходят такие потребности как знание xpath, как знание регулярных выражение, как понимание тех вещей, о которых в "научиться делать сайты за 50 минут" видео, никто никогда не говорит. Книги полезны, если ты имеешь какие-то базовые знания, и хочешь расширить свой багаж знаний, но значительно более важной - есть практическое применение этих самых знаний, потому что в большинстве случаев, понять для чего нужен тот или иной алгоритм, элемент и тд, нужно просто чтобы появилась потребность в его использовании.
Erasyl Meiramov
Спасибо
Alexiagray
chat-box > electron . App threw an error during load TypeError: app.whenReady is not a function
Alexiagray
const createWindow = () => { const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences: {} }) mainWindow.loadURL("http://localhost:3000") } app.whenReady().then(createWindow)
Alexiagray
в чем трабла
Александр
А чему app равно?
Alexiagray
const {app, BrowserWindow} = require('electron')
Александр
Как-то криво заимпортилось
Alexiagray
чет он рил не видит whenReady
Alexiagray
как же эти баги подзаебали,вы бы знали
Александр
В консоль выведи app
Александр
И посмотри что там
Alexiagray
Alexiagray
Alexiagray
кароч все снесу и заного установлю
Alexiagray
ибо это не норм
Alexiagray
подскажите либки на сокет коннект задача подключится к эндпоинту и при входящем newMessage добавлять это сообщение в state перезаписывая компоненту чат диалога
Alexiagray
под реактом делаю если что
Vadim
ws если main, WebSoket нативный если рендер @Lolka21forever
Vadim
У них +- одинаковое АПИ
Vadim
Пс это есесна ИМХО, есть масса вариантов, но мне нравится так
Alexiagray
Подскажите socket.io скушает такой эндпоинт wss://ws.link.com:3000/socket.io/?EIO=3&transport=websocket Если что я про клиент socket.io для реакта
Alexiagray
Во, нормально сформулированный вопрос
Alexiagray
Мне по сути нужно вытащить json обьект каждый раз когда получается сигнал newMessage и отправить все данные уже в функцию которая разметку сделает для реакта. Я чет пока хх как реализовать постоянное прослушивание сокета точней он и так его прослушивает постоянно, как вызвать тик на отправку данных в функцию когда приходит сообщение без понятие.
Alexiagray
socket.addEventListener('message', (data) {....}) === socket.onmessage = function (event) { ... } ???
Alexiagray
или это немножечко разное в браузере?
Alexiagray
а еще я не понимаю почему дисконнект происходит с кодом 1000
Alexiagray
да это отлично конечно что он нормально закрылся
Alexiagray
ток какого черта при коннекте приходит инфа {sid:"........","upgrades":[],"pingInterval":25000,"pingTimeout":60000}
Alexiagray
думаю из-за пингтаймаута,но вот нативная либа браузера webSocket не имеет документацию
Alexiagray
эндпоинт да но в виде wss://ws.link.com:3000/socket.io/?EIO=3&transport=websocket
Alexiagray
щас попробую самостоятельно отправить пинг
Alexiagray
угу отправляю 2 он мне 3
Alexiagray
подскажи , правильная логика юзаю реакт нужно при получение мессаге добавлять выводить сообщение в электрон (тобишь в реакт) в результате в реакте юзаю ContainerAllMessages к нему получается должен подключить стор редакса когда приходит сообщение я его диспатчу в стор и уже массив с сообщение внутри контейнера вывожу с помощью map , все верно?
Alexiagray
а то уже голова кипит мальца и путаюсь куда что
CoMiGo / Косуля
Ребзи, у юзеров валится приложение на убунте 18 при закрытии дочернего окна с ошибкой сегментации (и отсутствием ещё какой полезной инфы), а вот на федоре или винде норм. Что это может быть??
CoMiGo / Косуля
Вообще там два окна, которые вместе закрываются, но вроде как всё чищу. Подсокращённый код (рендер-процесс): window.openDebugger = function(link) { // Clean up previous instances of a toolbar and a debugger if (previewWindow) { previewWindow.destroy(); previewWindow = null; } if (toolbarWindow) { toolbarWindow.destroy(); toolbarWindow = null; } const {BrowserWindow} = require('electron').remote; // Spawn a new preview window previewWindow = new BrowserWindow({... из особенного только включена поддержка нод.жс ...}); previewWindow.setMenuBarVisibility(false); previewWindow.maximize(); previewWindow.loadURL(link); previewWindow.focus(); previewWindow.webContents.openDevTools(); // Create a toolbar that provides additional game-related tools toolbarWindow = new BrowserWindow({...}); // listeners for events when one of the windows is closed; destroy both const closer = () => { if (previewWindow) { previewWindow.destroy(); } if (toolbarWindow) { toolbarWindow.destroy(); } toolbarWindow = previewWindow = null; }; toolbarWindow.on('close', closer); previewWindow.on('close', closer);
Георгий
Всем привет как отключить возможность перезагружать страницу хоткеями?)
Георгий
Слови хоткей и сделай preventDefault
Это я знаю)) Просто подумал вдруг есть какой нибудь параметр в windowBrowser
Георгий
Dmitry
Вроде бы если не подгружать меню, то hotkeys не будут работать
Андрей
Искал не нашел
mainWindow.webContents.removeListener('did-finish-load', handler);
Андрей
Попробуй на хоткей
Dmitry
А вообще тут подобный вопрос обсуждался https://github.com/electron/electron/issues/12384
Electron.js releases
v10.0.0-nightly.20200406 https://github.com/electron/electron/releases/tag/v10.0.0-nightly.20200406 v10.0.0-nightly.20200406
Electron.js releases
v9.0.0-beta.14 https://github.com/electron/electron/releases/tag/v9.0.0-beta.14 v9.0.0-beta.14
Dmitry
Всем привет. Хочу добавить в приложение на электроне поддержку плагинов. Как это можно красиво реализовать? Хотелось бы, чтобы плагин мог содержать компонент (пишу на Vue), который потом встроится в приложение, но что-то ума не приложу, как это можно сделать, не пересобирая приложение заново
Получилось реализовать такое решение? И если да, то можно попросить поделиться опытом, как лучше это сделать. Кто-нибудь пытался решить с использованием live-plugin-manager или возможно есть какие-нибудь схожие библиотеки?