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

IT技术 javascript facebook mobile browser in-app
2021-03-01 03:00:55

你有过 Facebook 应用内浏览器检测的经验吗?用户代理的核心区别是什么?

我不想知道它是否是唯一的移动/ios/chrome。我需要知道用户代理是否特定于Facebook 应用内浏览器

4个回答

您可以在用户代理中检查 FBAN / FBAV。

检查此链接: Facebook 用户代理

我在答案中添加了片段,谢谢@jeff_drumgod
2021-04-24 03:00:55
ua.indexOf("FBAN") > -1 和 ua.indexOf("FBAV") > -1 是什么意思?强制用户使用网络浏览器而不是应用程序内浏览器?
2021-04-25 03:00:55
你能解释|| window.opera一下吗?我认为它不会转换为用户代理字符串。
2021-04-25 03:00:55
谢谢!分享 Instagram 的片段还有:(ua.indexOf('Instagram') > -1)
2021-04-30 03:00:55
@RobbNespvar us = navigator.userAgent为您提供一个字符串值。.indexOf()检查子字符串在字符串中的位置。如果未找到,则返回值 -1。它只是通过检查浏览器的用户代理是否包含给定的子字符串中的任何一个来检查它是否是 Facebook 浏览器。
2021-05-14 03:00:55

要完成 worker11811 关于使用用户代理的回答,请使用以下代码片段使其工作:

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

您可以使用https://www.npmjs.com/package/detect-inapp并检查 inapp.isInApp() 是否为真

这个 javascript 运行良好

var standalone = window.navigator.standalone,
    userAgent = window.navigator.userAgent.toLowerCase(),
    safari = /safari/.test( userAgent ),
    ios = /iphone|ipod|ipad/.test( userAgent );

if( ios ) {
    if ( !standalone && safari ) {
        //browser
    } else if ( standalone && !safari ) {
        //standalone
    } else if ( !standalone && !safari ) {
        //uiwebview (Facebook in-app browser)

    };
} else {
    //not iOS
};
OP 询问:“需要知道用户代理是否特定于 Facebook 应用内浏览器”。
2021-05-16 03:00:55