PWA не может включить уведомления приложений в Android TWA (доверенная веб-активность)?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 PWA не может включить уведомления приложений в Android TWA (доверенная веб-активность)?

Сообщение Anonymous »

Код: Выделить всё

Notification.requestPermission()
в PWA не заставляет приложение Android/TWA менять уведомления на «разрешено» вместо «заблокировано».
Используя самую последнюю версию Google Bubblewrap, я создал оболочку Android Trusted Web Activity (TWA) для моего PWA (прогрессивного веб-приложения), созданного с помощью SolidJS. Мой код Android использует:

Код: Выделить всё

public class DelegationService extends com.google.androidbrowserhelper.trusted.DelegationService
чтобы, когда PWA запрашивает Notification.requestPermission(), TWA должен передать запрос в оболочку TWA для Android и включить уведомления приложения, а не только уведомления браузера.
Однако, когда PWA вызывает Notification.requestPermission() и пользователь выбирает «Разрешить», PWA возвращает «предоставлено», но разрешение на уведомления приложения все еще «заблокирован».
Я проверил, что следую всем инструкциям для gradle и т. д., и попробовал 100 вариантов, но это все еще происходит. Кажется, это должно быть просто и общепринято: включить PWA для включения уведомлений в оболочке TWA для Android, и все же я в тупике.
Идеи?
реализация 'com.google.androidbrowserhelper:androidbrowserhelper:2.6.2'
Для его запуска я использую следующие шаги:

Код: Выделить всё

adb uninstall com.testapp.www.twa
fastlane android install_debug
adb logcat  -T "$(date +'%m-%d %H:%M:%S.%q' -d '1 seconds ago')" -s "FirebaseMsgService" "LauncherActivity" "cr_TrustedWebActivity" "chromium" "ActivityTaskManager" "LogErrorOperation" "FirebaseMessaging" "FirebaseMessagingService" "NotificationManager" "MyApplication" "TwaApplication" "TwaDelegationService" "OriginVerifier" "Notifications"
Когда я подключаюсь к устройству Android с помощью инструментов Chrome Dev и нажимаю кнопку PWA, чтобы включить уведомления, я получаю в консоли Chrome подтверждение того, что Notification.requestPermission() выполняется успешно, и могу нажать «Разрешить» во всплывающем окне системы со следующими записями журнала консоли:

Код: Выделить всё

Requesting notification permission via Web API.
DIAGNOSTIC: Web API notification permission result: granted
Однако похоже, что Notification.requestPermission() не перехватывается кодом TWA/Android/"DelegationService расширяет com.google.androidbrowserhelper.trusted.DelegationService", поэтому журналы не отправляются в adb logcat во время фактического нажатия и шага Notification.requestPermission. Я запускаю это на устройстве, поэтому не знаю, как получить вывод журнала в код `com.google.androidbrowserhelper.trusted.DelegationService.
Это класс, который я расширяю: https://github.com/GoogleChrome/android ... rvice.java
Этот код, похоже, выполняет тяжелую работу в коде Android, чтобы фактически получить и изменить разрешение на уведомление приложения Android, но я не уверен, как это связано с моим кодом, и он не упоминается в документации: https://github.com/GoogleChrome/android ... ivity.java

Подробнее здесь: https://stackoverflow.com/questions/798 ... b-activity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»