Отправить уведомления на рабочем столе в 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

Разделить строку на предложения

Рисование изображения из URL-адреса данных на canvas

Почему автобоксирование делает некоторые вызовы неоднозначными на Java?

HashSet против LinkedHashSet

sed заменить переменной на несколько строк

Как перечислить все функции в модуле Python?

Применение формулы к диапазону ячеек без перетаскивания

Выдавать себя за использование проверки подлинности с помощью форм

Печально известная, но без ответа проблема загрузки файла, когда требуется защита Windows

Как вы создаете сопоставление ключей vim, которое требует номеров перед горячей клавишей (например, <G>)?

Составляют ли какие-либо JIT-компиляторы JVM код, который использует векторизованные инструкции с плавающей запятой?

Ошибка компилятора: ссылка на вызов неоднозначную

Как программно открыть меню опций?

Resharper запускает UnitTest из другого места

Ожидание списка Будущего

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