4

我正在构建一个 Android 应用程序,它将我的 Progressive Web App 包装为受信任的 Web 活动。(我正在遵循Google 示例项目中的指南。)

当用户在应用程序中播放音频时,设备上会出现一个媒体通知。我正在使用网络媒体会话 API 来自定义此通知的内容。

如果在普通 Web 浏览器中运行 PWA,一旦出现通知,按下它会将用户返回到相关的浏览器选项卡。(如果手机被锁定,会提示用户解锁。)

如果媒体通知是从 TWA 触发的,则按下它不会执行任何操作。(播放/暂停等其他功能按预期工作。)

媒体会话 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 等 Web 浏览器触发时相同的功能。

这包括在除播放/暂停控件之外的任何位置按下通知时将用户返回到 TWA(或提示用户解锁设备)。

除了这方面,其他一切都有效。

4

1 回答 1

0

这是 pwa 和 web 中的默认操作,每当有人单击通知媒体控件时,它会进入网站或 pwa,但在 twa 中它被破坏了,它会进入 chrome 浏览器但不关注应用程序或网站。我已经在 github 上提出了相同的票

于 2022-02-11T09:27:37.457 回答