在Facebook应用程序之外打开网站链接

时间:2017-04-18 17:11:00

标签: javascript facebook

我已经找到了一种方法来检测页面是否已经加载到Facebook应用程序中,这是通过这种方式完成的:

var ua = navigator.userAgent || navigator.vendor || window.opera;
if((ua.indexOf("FBAN") > -1) || (ua.indexOf("FBAV") > -1)) {
    var openInBrowser = window.confirm("This page works best outside of the Facebook app. Do you want to open it in your browser instead?");
    if (openInBrowser) {
        window.open(
          window.location.href, 
          '_blank'
        );
    }
}

但是,这个脚本似乎不起作用。是因为手机阻止它(弹出窗口阻止程序)?目的是要求用户通过浏览器加载页面,如果用户同意,则在Safari,Chrome或任何首选浏览器中打开页面。

1 个答案:

答案 0 :(得分:0)

我知道已经晚了,但是我最近遇到了这个问题,我认为我的回答可能对遇到同样问题的人有用。

截至撰写本文时,据我所知,无法通过JavaScript代码获得所需的结果。唯一的选项涉及让用户自己配置或执行某些操作,并且这些选项在iOS和Android之间有所不同。 您可以检测到用户在Facebook Internal浏览器中,并指导用户下一步该做什么。不幸的是,这是糟糕的用户体验。


对于Android Facebook应用: 用户可以禁用内部浏览器:在三行(三明治)菜单上点击,向下滚动到“设置和隐私”,然后选择“设置”。再次向下滚动至“媒体和联系人”。在这里,您将看到“外部链接打开”切换。这需要打开。

对于iOS Facebook应用: 用户可以打开链接,然后点击右上角(Facebook)或右下角(Messenger)的三点菜单,然后选择“在Safari中打开”。


对于Android ,有一种解决方法涉及Firebase动态链接-described here