Заставить веб-уведомления работать с веб-просмотром в собственном приложении для Android?

У меня есть веб-сайт, который реагирует и включает функцию push-уведомлений. В моем собственном приложении для Android, если я загружаю свой веб-сайт в WebView, всплывающее окно, которое обычно появляется в chrome/firefox, чтобы спросить, хочет ли пользователь разрешить push-уведомление или нет, не отображается в WebView. И, очевидно, WebView не будет поддерживать одно и то же веб-push-уведомление для приложения. Я знаю, как реализовать GCM или FCM в приложении, чтобы включить мобильное push-уведомление, но я хотел знать, возможно ли просто объединить веб-push-уведомление с веб-просмотром Android, чтобы оно работало в моем приложении, поскольку оно работает в chrome/firefox и т. д. .

Что я пробовал: углубившись в это, я, наконец, пришел к выводу, что, поскольку Android WebView не поддерживает Push API (с помощью caniuse.com), объединение веб-пушей с мобильным пушом с использованием WebView на данный момент невозможно. Я прав? Или есть какое-то приложение, которое уже делает это? Можно как-то?


person Sash_KP    schedule 14.01.2017    source источник
comment
Что здесь означает «клуб»?   -  person sideshowbarker    schedule 14.01.2017
comment
Это означает, что то, как веб-push-уведомления работают в веб-браузерах, таких как Chrome или Firefox, будет работать и в веб-просмотре нативного приложения.   -  person Sash_KP    schedule 14.01.2017
comment
Нет, на данный момент WebView не поддерживает веб-push.   -  person collimarco    schedule 14.01.2017
comment
@Sash_KP, ты когда-нибудь мог понять это?   -  person Eric    schedule 18.05.2020
comment
@Sash_KP, ты когда-нибудь мог понять это?   -  person Vivek    schedule 11.06.2021
comment
@ Вивек Не совсем.   -  person Sash_KP    schedule 13.06.2021
comment
Хорошо, @Sash_KP, а как иначе? Пожалуйста, предложите   -  person Vivek    schedule 16.06.2021


Ответы (2)


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

Использует пешеходный переход, расширяет основную активность до XWalkactivity. Включите это при создании:

OneSignal.startInit(this)
                .inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
                .unsubscribeWhenNotificationsAreDisabled(true)
                .init();

Да, у вас будут работать веб-push-уведомления!!!

person jonatas Borges    schedule 03.04.2018
comment
Эй, чувак, это не веб-уведомления. Это просто уведомления FCM с использованием OneSignal SDK - person fuliozor; 03.08.2018

Насколько мне известно, нельзя использовать только WebView.

Решение, которое сработало для меня, состояло в том, чтобы выяснить, использует ли веб-сайт, который вы хотите отображать в WebView, WebSockets. Если да, уведомление, вероятно, будет доступно в соответствующем сообщении WebSocket. Рабочий процесс следующий:

  1. Определите WebSocket на сайте. Вы можете использовать Firefox «Проверить код» и на вкладке «Сеть» отфильтровать только записи WebSocket.

  2. Вы можете проверить подключение к ws с помощью различных инструментов. Simple-WebSocket-Client для Firefox или инструмент командной строки. Просто укажите URI для вашего WebSocket (ws://domain.example/ws).

  3. Реализуйте клиент WebSocket в своем приложении. Были разные посты о том, как это сделать. Я использовал эту библиотеку, чтобы сделать ее красивой и чистой.

  4. Теперь вы получаете сообщения с сервера, такие как уведомления.

  5. Разбирай их и делай что хочешь.

person Jiří Dostál    schedule 21.11.2017
comment
Итак, ваш веб-сайт получает уведомления внутри вашего веб-просмотра и вызывает основное приложение? Можете ли вы поделиться некоторым учебником или примером кода, пожалуйста, спасибо - person Alberto Acuña; 02.10.2018