我正在构建一个Android应用程序,该程序将我的Progressive Web App封装为Trusted Web Activity。 (我遵循Google's sample project的指南。)
当用户在应用程序中播放音频时,设备上会出现媒体通知。我正在使用网络媒体会话API自定义此通知的内容。
如果在普通的Web浏览器中运行PWA,则在显示通知后,按通知将使用户返回到相关的浏览器选项卡。 (如果手机已锁定,则会提示用户解锁。)
如果从TWA触发了媒体通知,则按该按钮将不执行任何操作。 (其他功能(如播放/暂停)可以按预期工作。)
Media Session API的范围相当有限。 MediaSession action types不包括使应用程序聚焦的动作。
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(或提示用户解锁设备)。
除此方面外,其他所有方法都适用。