我已经找到了一种方法来检测页面是否已加载到 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 或任何首选浏览器中打开页面。
我知道已经晚了,但我最近遇到了这个问题,我认为我的答案可能对有同样问题的人有用。
截至撰写本文时,据我所知,不可能通过 JavaScript 代码实现您想要的结果。唯一的选项涉及让用户自行配置或执行某些操作,并且 iOS 和 Android 之间的选项有所不同。
您可以检测用户是否在 Facebook 内部浏览器中,并指导用户下一步做什么。不幸的是,这是很差的用户体验。
对于 Android Facebook 应用程序:用户可以禁用内部浏览器:点击三行(三明治)菜单,向下滚动到“设置和隐私”,然后选择“设置”。再次向下滚动到“媒体和联系人”。在这里,您将看到“链接在外部打开”切换。这个需要开启。
对于 iOS Facebook 应用程序:用户可以打开链接,然后点击右上角 (Facebook) 或右下角 (Messenger) 的三点菜单,然后选择“在 Safari 中打开”。
对于安卓,有一个涉及 Firebase 动态链接的解决方法 -此处描述 https://stackoverflow.com/a/56143217/3000586.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)