Как лучше мне показывать не хост в запросе уведомлений в twa а название приложения?

Ссылка скопирована
1 ответ

По вводным: я загрузила свое приложение на временное тестирование в GOOGLE PLAY и когда я нажимаю кнопку получить уведомления то получаю запрос типа:
Нужно понять: разрешить получение уведомлений от этого веб-сайта?
https://my-site.by
Или
По вводным: сайт host_my.site.by хочет отправлять вам уведомления
По вводным: я же хочу более приближенного к нативному поведения. И отображать название приложения.
По вводным: что использую: React + Vite, PWA обёрнутое в TWA с помощью bubblewrap
Нужно понять: это возможно приблизить к нативному поведению и что можно для этого использовать?

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Игорь NetOps Ответ

В 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 нужен нативный слой уведомлений.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно