我的意思的例子:
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如何处理意图的怪癖。有人知道任何解决方法吗?