Как мне вернуть пользователя в мой TWA при нажатии на медиа-уведомление?
Я создаю приложение для Android, которое превращает мое Progressive Web App в "Доверенную веб-активность". (Я следую инструкциям из примера проекта Google.)
Когда пользователь воспроизводит аудио в приложении, на устройстве появляется медиа-уведомление. Я использую API Media Media Session для настройки содержимого этого уведомления.
Если PWA запущен в обычном веб-браузере, после появления уведомления нажатие на него возвращает пользователя к соответствующей вкладке браузера. (Если телефон заблокирован, пользователю предлагается разблокировать.)
Если медиа-уведомление запускается из TWA, нажатие на него ничего не делает. (Другие функции, такие как воспроизведение / пауза, работают как положено.)
Media Session API довольно ограничен по объему. Типы действий MediaSession не включают в себя действие для фокусировки приложения.
navigator.mediaSession.setActionHandler('pause', () => {
audioElement.pause();
navigator.mediaSession.playbackState = 'paused';
});
navigator.mediaSession.setActionHandler('play', () => {
audioElement.play();
navigator.mediaSession.playbackState = 'playing';
});
navigator.mediaSession.metadata = new MediaMetadata({
title: 'App',
artist: 'Name',
artwork: [
{ src: '/android-chrome-192x192.png?v=47rE43RRzB', sizes: '192x192', type: 'image/png' },
{ src: '/android-chrome-512x512.png?v=47rE43RRzB', sizes: '512x512', type: 'image/png' },
],
});
Когда медиа-уведомление запускается из TWA, я ожидаю, что те же функциональные возможности, что и при его запуске из веб-браузера, такого как Chrome.
Это включает в себя возвращение пользователя в TWA (или предложение пользователю разблокировать устройство), когда уведомление нажимается в любом месте, кроме элемента управления воспроизведением / паузой.
Все остальное работает, кроме этого аспекта.
1 ответ
Это было действие по умолчанию в pwa и в Интернете: всякий раз, когда кто-то нажимает на элемент управления мультимедиа для уведомлений, он переходит на веб-сайт или pwa, но в двух случаях он не работает, он переходит в браузер Chrome, но не фокусируется на приложении или веб-сайте. Я уже поднял билет на то же самое на github