Отправить уведомления на рабочем столе в 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, о чем вы упомянули в письме в нашу службу поддержки.
Я надеюсь, что это поможет или, по крайней мере, получит то, что вам нужно, чтобы двигаться вперед. 🙂