1

2 つの Web ページがあります。最初のものは新しいタブで 2 番目のものを開きます。彼らは JavaScript の postMessage でお互いに話し合っています。このセットアップは、すべてのブラウザー (デスクトップ/モバイル) で正常に機能します。

Android で Chrome カスタム タブを使用して同じ動作をシミュレートしようとすると、2 番目のページが新しいページではなく同じレイアウトで開かれます。その結果、postMessage を使用できなくなりました。

カスタムタブ内のリンクを強制的に新しいカスタムタブで開き、 postMessage 機能を維持するにはどうすればよいですか?

4

2 に答える 2

0

エゴール、助けてくれてありがとう!

この問題は、Chrome for Androidの最新バージョンをインストールすることで解決されました。

Chrome 48.0.2564.95 window2で Chrome カスタム タブを使用すると、そのコンテンツが window1 に読み込まれます。Chrome 49.0.2623.91 の時点で、 window1状態が保持され、同じカスタム タブで window2 が一番上に開き、 window1が非表示になります。postMessage は問題なく動作します。添付のスクリーンショットを見ることができます。

Inspect Devices を使用した Android Chrome のデバッグ

ただし、マイナーなバグはまだ存在します。一番下のページ window1 からアラートが発生すると window2非アクティブになりますが、表示されたままになります。つまり、フォーカスはwindow1にありますが、window2のコンテンツが表示されます。適切な作業セットアップを復元するには、デバッガーを使用して手動でフォーカスをwindow2に戻す必要があります。

于 2016-03-16T10:04:22.043 に答える
0

Web コンテンツから別のカスタム タブを作成する方法はありません。これは、タブを開いたアプリにすばやく戻る方法を維持したいためです。

一方、postMessage でのタブの種類/可視性をチェックするロジックを思い出すことができません。バグのようですね。

詳細な再現機能を備えたバグは大いに役立ちます。README.md の「このテンプレート」リンクを使用してください: https://github.com/GoogleChrome/custom-tabs-client

ありがとう!

于 2016-03-11T14:09:21.917 に答える