Как обнаружить Facebook в браузере приложения?

Был ли у вас опыт обнаружения браузеров в приложении в Facebook? В чем основное отличие в пользовательском агенте?

Я не хочу знать, если это только мобильный / IOS / Chrome. Мне нужно знать, специфичен ли пользовательский агент из браузера в приложении Facebook

3 ответа

Решение

Вы можете проверить наличие FBAN / FBAV в пользовательском агенте.

Проверьте эту ссылку: пользовательский агент Facebook

Пример кода, предложенный @sascha

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

Чтобы завершить ответ 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
};
Другие вопросы по тегам