私が意味するものの例:
http://jsfiddle.net/dtipson/ttebddd5/2/
他のすべてのブラウザーでは、Twitter のインテント ページにリンクしていない場合、新しいウィンドウを開くか空白をターゲットにすると、新しいタブで開きます。しかし、android では、ブラウザーで twitter.com へのリンクを処理するように設定した後でも、新しいウィンドウが開いてすぐに閉じ、元の (呼び出し元の) ページが twitter.com に移動します。正しく動作しないコードの例 (これと関係があるとは思えませんが):
window.open(
'https://twitter.com/intent/tweet?text=hi',
'intent',
'scrollbars=yes,resizable=yes,toolbar=no,location=yes,status=no,width=550,height=420');
私の推測では、これは Android が「アプリケーション インテント」を処理することと関係があると考えられます。ページがネイティブ アプリケーション リンクを持っていると主張するものにリダイレクトされる場合、window.opener のチェーンを遡り、代わりに元のページに影響を与えます。
この動作をブロックするために、window.open を使用して、数秒待ってから twitter.com/intents にリダイレクトするページを開こうとしました。しかし、ここでも、新しいタブが開き、その遷移ページで何秒も待機し、リダイレクトされるとすぐに閉じて、代わりに元のタブが twitter.com にリダイレクトされます。window.opener を null に設定しようとしました(何もしないはずですが)。twitter.com のコードが元のページにどのように影響するかはわかりませんが、それらは明らかに同じドメイン上にないためです (元のドメインに Twitter の widgets.js が含まれないように設定しようとしました)。であるため、POSTMessage を使用することはできません)。
これは、Android がインテントを処理する方法に関する (imho, bad) 癖のようです。回避策を知っている人はいますか?