Отправить настольные уведомления в Chrome или Firefox из закрытого веб-приложения?
Моя цель - отправлять уведомления рабочего стола в стиле Gmail в Chrome или Firefox из веб-приложения (назовем его X), которое в данный момент НЕ открыто в браузере, не требуя от пользователя установки приложения или расширения. Это нормально, если пользователю необходимо предоставить разрешение на получение уведомлений от X, и все в порядке, если браузер должен быть открыт для появления уведомления, если X не нужно открывать в браузере. Решение, которое не требует открытия окна браузера, также будет работать.
Я только что провел день, копаясь в этом, и до сих пор, я думаю, я узнал:
- Начиная с OSX Mavericks, стало возможным делать это в Safari 7+ с помощью push-уведомлений Safari.
- API веб-уведомлений работает в Chrome/Firefox, но требует, чтобы браузер пользователя был открыт для X.
- Twitter отправляет подобные веб-уведомления, не спрашивая у пользователя разрешения, но требует, чтобы браузер пользователя был открыт для Twitter.
- Существует множество ссылок на возможные реализации Growl, но, насколько я могу судить, все они требуют, чтобы пользователь установил Growl и / или приложение с поддержкой Growl для работы.
Я могу ошибаться в любом из моих заявлений выше - я бы хотел услышать это! - и я открыт для любого другого решения тоже. Есть идеи?
Спасибо за прочтение.
3 ответа
Вы можете отправлять push-уведомления, даже если ваша веб-страница не активна, используя Service Workers, API уведомлений для сервисных работников и push -уведомления для инициируемых сервером уведомлений (или запланированных уведомлений).
С июня 2016 года сервисные работники поддерживаются в Chrome, Firefox и Opera. Смотрите статус на https://jakearchibald.github.io/isserviceworkerready/
Смотрите следующие ссылки для связанных обсуждений, статуса реализации и спецификаций.
- Сервисные работники включены по умолчанию начиная с Chrome 40, Firefox 33 и Opera 24. См. Учебное руководство по HTML5Rocks и MDN.
- Push-уведомления: Chrome 42+, Firefox 44+
Вы можете сделать именно то, что вы ищете, используя W3C Push API.
Если вы хотите построить все с нуля, я предлагаю начать читать этот урок от Google. Это для Chrome, но Firefox работает очень похоже.
Однако это большая работа, и "стандарт" все еще развивается: я предлагаю вам использовать такой сервис, как Pushpad (я являюсь основателем).
Вы также просили нас об этом в Growl по адресу нашей службы поддержки. Я отвечу настолько, насколько я знаю, как. Однако то, что вы хотите, это, по сути, настольные push-уведомления. Даже на iOS вам нужно установить приложение, чтобы получать push-уведомления для этого приложения.
Суть в том, что то, что вы хотите, кажется в значительной степени погоней за диким гусем. Вам не нужны ни приложение, ни вкладка браузера, но вы хотите иметь возможность случайного вторжения в личное пространство пользователя. Это просто не кажется правильным. По крайней мере, с Growl человек, использующий компьютер, может отключить вас, если он обнаружит, что ваши уведомления раздражают. То же самое верно для Центра уведомлений (NC) в более текущих установках OS X.
Firefox теперь имеет свои собственные уведомления. Я не знаю, как они работают, так как я перестал использовать Firefox на OS X, когда они сделали это. Chrome также имеет уведомления. Но, насколько я могу судить, вам нужна открытая вкладка, так что я полагаю, что FF тоже это сделал.
По сути говоря, как пользователь, я действительно считаю, что это ужасный опыт. У вас есть веб-приложение, оно должно быть веб-приложением. Это не настольное приложение. Я не говорю, что это хорошо или плохо для веб-приложения быть веб-приложением, но, по сути, вы хотите давить на пользователя без явного разрешения, которое мне просто не кажется правильным.
Я не знаю ни одного способа отправить уведомление, по крайней мере, какое-нибудь приложение, работающее для этого. Будь то рычание или демон NC или что-то еще. По сути, я не думаю, что вы хотите сделать возможно. Я был бы счастлив, конечно, ошибаться, но я не думаю, что я здесь. Извини за это.
Тем не менее, вы можете иметь небольшое приложение с поддержкой Growl через текущую среду. Если у конечного пользователя не установлен Growl, он будет использовать NC для отображения. Если это более старая ОС, она будет использовать Mist, о чем вы упоминали в электронном письме в нашу службу поддержки.
Я надеюсь, что это поможет или, по крайней мере, даст вам то, что вам нужно, чтобы продолжать двигаться вперед.:)