如何检测Facebook应用内浏览器?

54

您是否有过在Facebook应用内浏览器检测方面的经验?

用户代理(user agent)的核心差异是什么?

我不想知道它只适用于移动设备/ iOS / Chrome。我需要知道用户代理是否来自Facebook应用内浏览器

3个回答

87

1
@RobbNesp var us = navigator.userAgent 给出了一个字符串值。 .indexOf() 检查字符串中子字符串的位置。如果未找到,则返回-1。 它只是检查是否为 Facebook 浏览器,通过检查浏览器的用户代理是否包含给定的任一子字符串。 - Jan Swart
8
谢谢!分享Instagram片段也是:(ua.indexOf('Instagram') > -1)。这个代码片段可以检查用户的浏览器代理字符串中是否包含“Instagram”,以便在网站上提供适当的Instagram分享按钮或其他功能。 - jeff_drumgod
2
你能解释一下 || window.opera 的含义吗?我认为它不会转换到用户代理字符串。 - DrLightman
万分感谢。 - Jagruti
它适用于Android和iOS设备上的Facebook应用程序吗? - Chilly Code
显示剩余2条评论

42

为了补充worker11811的关于如何使用用户代理的答案,以下是一段代码片段可以帮助实现:

function isFacebookApp() {
    var ua = navigator.userAgent || navigator.vendor || window.opera;
    return (ua.indexOf("FBAN") > -1) || (ua.indexOf("FBAV") > -1);
}

2

这真的很有帮助,而且非常有效。 - Rajesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接