Как лучше мне показывать не хост в запросе уведомлений в twa а название приложения?
По вводным: я загрузила свое приложение на временное тестирование в GOOGLE PLAY и когда я нажимаю кнопку получить уведомления то получаю запрос типа:
Нужно понять: разрешить получение уведомлений от этого веб-сайта?
https://my-site.by
Или
По вводным: сайт host_my.site.by хочет отправлять вам уведомления
По вводным: я же хочу более приближенного к нативному поведения. И отображать название приложения.
По вводным: что использую: React + Vite, PWA обёрнутое в TWA с помощью bubblewrap
Нужно понять: это возможно приблизить к нативному поведению и что можно для этого использовать?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
В TWA/PWA системный запрос на push-уведомления показывает origin сайта, потому что разрешение выдается не “нативному приложению”, а web-origin внутри Trusted Web Activity. Поэтому текст вида “сайт https://my-site.by хочет отправлять уведомления” - нормальное поведение браузерной платформы. Полностью заменить его на название приложения средствами JavaScript нельзя.
Что можно улучшить: корректно заполнить manifest.json, чтобы в установленном PWA и интерфейсах Chrome отображалось нормальное имя приложения.
{ "name": "Название приложения", "short_name": "Название", "start_url": "/", "scope": "/", "display": "standalone", "icons": [ { "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png" }, { "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png" } ] }{ "name": "Название приложения", "short_name": "Название", "start_url": "/", "scope": "/", "display": "standalone", "icons": [ { "src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png" }, { "src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png" } ] }
В bubblewrap проверьте twa-manifest и assetlinks.json. Домен должен быть подтвержден Digital Asset Links, иначе Android/Chrome может вести себя менее “нативно”.
[ { "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "your.package.name", "sha256_cert_fingerprints": ["AA:BB:..."] } } ][ { "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "your.package.name", "sha256_cert_fingerprints": ["AA:BB:..."] } } ]
Но даже при корректном TWA разрешение на web push остается привязанным к сайту. Если нужен полностью нативный запрос с названием приложения, нужно делать нативные push-уведомления через Android/Firebase Cloud Messaging в собственном Android-коде, а не web push внутри PWA.
Практический компромисс: перед системным prompt показывать свой экран-объяснение с названием приложения: “Приложение будет отправлять уведомления о ...”, а уже после клика пользователя вызывать Notification.requestPermission(). Так пользователь понимает контекст, даже если системное окно показывает домен.
Вывод: приблизить можно через manifest, verified TWA и предварительный экран, но заменить origin на название приложения в стандартном web push prompt нельзя. Для полностью нативного UX нужен нативный слой уведомлений.