Отправить уведомления на рабочем столе в Chrome или Firefox из закрытого веб-приложения?

Моя цель – отправить уведомления в стиле рабочего стола Gmail в Chrome или Firefox из веб-приложения (давайте назовем его X), которое в настоящее время не открыто в браузере, не требуя от пользователя установки приложения или расширения. Это нормально, если пользователю необходимо предоставить разрешение на получение уведомлений от X, и все в порядке, если браузер должен быть открыт для уведомления, пока X не нужно открывать в браузере. Также будет работать решение, которое не требует открытия любого windows браузера.

Я просто потратил день на это, и до сих пор, я думаю, я узнал:

  • Начиная с OSX Mavericks, это можно было сделать в Safari 7+ через Safari Push Notifications .
  • API веб-уведомлений работает в Chrome / Firefox, но требует, чтобы браузер пользователя был открыт для X.
  • Twitter отправляет похожие веб-уведомления, не спрашивая сначала пользователя о разрешении, но требует, чтобы браузер пользователя был открыт для Twitter.
  • Существует множество ссылок на возможные реализации Growl , но, насколько я могу судить, все они требуют от пользователя установки Growl и / или приложения с поддержкой Growl для работы.

Я мог ошибаться в отношении любого из моих заявлений выше – я бы хотел это услышать! – и я открыт для любого другого решения. Есть идеи?

Спасибо за прочтение.

    Вы можете отправлять push-уведомления, даже если ваша веб-страница не активна, используя Service Workers , Notification API для рабочих сервисов и push API для уведомлений, инициированных сервером (или запланированных уведомлений ).

    По состоянию на июнь 2016 года сервис-работники поддерживаются в Chrome, Firefox и Opera. См. Статус на странице https://jakearchibald.github.io/isserviceworkerready/

    См. Следующие ссылки для соответствующих обсуждений, статуса внедрения и спецификаций.

    • Работники службы включены по умолчанию с Chrome 40 , Firefox 33 и Opera 24. См. Учебник HTML5Rocks и MDN .
    • Push-уведомления: Chrome 42+ , Firefox 44+

    Вы можете делать именно то, что ищете, используя API W3C Push .

    Если вы хотите построить все с нуля, я предлагаю начать читать этот учебник от Google . Это для Chrome, но Firefox работает очень похоже .

    Однако это большая работа, и «стандарт» все еще развивается: я предлагаю вам использовать такую ​​услугу, как Pushpad (я – основатель).

    Вы спросили об этом нас в Growl по нашему адресу поддержки. Я отвечу столько, сколько знаю. Однако то, что вы хотите, это, по сути, push-уведомления. Даже на iOS вам необходимо установить приложение, чтобы иметь push-уведомления для этого приложения.

    Суть в том, что то, что вы хотите, похоже, в значительной степени дикой гусиной погони. Вы не хотите ни приложения, ни вкладки браузера, но хотите, чтобы вы случайно вторглись в личное пространство пользователя. Это просто не кажется правильным. По крайней мере, с Growl человек, использующий компьютер, может закрыть вас, если они найдут ваши уведомления раздражающими. То же самое верно в Notification Center (NC) в более современных установках OS X.

    Теперь у Firefox есть свои собственные уведомления. Я не знаю, как они работают с тех пор, как я прекратил использование Firefox в OS X, когда они это сделали. У Chrome есть уведомления. Но, насколько я могу судить, вам нужна вкладка, открытая там, поэтому я предполагаю, что это и сделал FF.

    По сути говоря, я считаю, что это ужасный опыт. У вас есть веб-приложение, это должно быть веб-приложение. Это не приложение для настольных компьютеров. Я не говорю, что это хорошее или плохое для веб-приложения, чтобы быть веб-приложением, но по сути вы хотите надавить на пользователя без неявного разрешения, которое мне кажется не совсем правильным.

    Я не знаю, как отправить уведомление, по крайней мере, на какое-то приложение, выполняющее его. Будь то Growl или демон NC или что-то еще. По существу, я не думаю, что вы хотите сделать. Конечно, я был бы рад быть неправым, но я не думаю, что я здесь. Извини за это.

    Тем не менее, вы можете иметь небольшое приложение с поддержкой Growl в нем через текущую структуру. Если у конечного пользователя не установлен Growl, он будет использовать NC для отображения. Если это более старая ОС, он будет использовать Mist, о чем вы упомянули в письме в нашу службу поддержки.

    Я надеюсь, что это поможет или, по крайней мере, получит то, что вам нужно, чтобы двигаться вперед. 🙂

    Interesting Posts

    Как удалить 1000 строк с помощью EF6?

    Facebook / Twitter с dotnetopenauth?

    Проблема с Android-файлом Android WebView

    Node.js – Использование async lib – async.foreach с объектом

    Переносная ассоциация файлов для USB-накопителей?

    Почему C ++ разрешает массивы переменной длины, которые не распределены динамически?

    Изменение пути поиска DLL для статической связанной DLL

    Самый простой способ сравнить массивы в C #

    Цвет фона элемента меню навигации для выбранного элемента

    Невозможно ли применить оператор == к родовым типам в C #?

    Итерация по std :: vector: unsigned vs подпадающая индексная переменная

    Почему == сравнения с Integer.valueOf (String) дают разные результаты для 127 и 128?

    Использование методов PUT и DELETE в Spring MVC

    Что такое Apache Camel?

    Компилятор предполагает, что я добавляю «статическое время жизни», потому что тип параметра может не прожить достаточно долго, но я не думаю, что это то, что я хочу

    Давайте будем гением компьютера.