4

プログレッシブ Web アプリを Trusted Web Activity としてラップする Android アプリを作成しています。( Google のサンプル プロジェクトのガイドラインに従っています。)

ユーザーがアプリでオーディオを再生すると、デバイスにメディア通知が表示されます。この通知の内容をカスタマイズするために、Web Media Session API を使用しています。

通常の Web ブラウザーで 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 などの Web ブラウザーからトリガーされた場合と同じ機能を期待します。

これには、再生/一時停止コントロール以外の場所で通知が押されたときに、ユーザーを TWA に戻す (またはユーザーにデバイスのロックを解除するように求める) ことが含まれます。

この側面を除いて、他のすべてが機能します。

4

1 に答える 1