有没有办法在php中知道网页是否在Facebook应用内浏览器中运行?
当我在Facebook上发布链接时,我需要知道,如果用户通过Facebook App for iPad查看网页,或通过iPad在Safari Safari浏览器上查看。
我知道我可以检测到iPad,但这还不够,因为facebook App和facebook都可以在iPad上运行。
有什么建议吗?
由于
答案 0 :(得分:2)
这样的事可能对你有用......
if (
("standalone" in window.navigator) &&
!window.navigator.standalone
){
// .... code here ....
}
检查来源:
答案 1 :(得分:2)
我今天也遇到了这个问题。 我正在比较Useragent-Strings并提出了一个适合我的解决方案。 又快又脏:
function check_ios_fb() {
$uagent = $_SERVER['HTTP_USER_AGENT'];
$return = false;
if(preg_match('/FBBV/i',$uagent))
{
if(preg_match('/iPhone/i',$uagent))
$return = true;
if(preg_match('/iPad/i',$uagent))
$return = true;
}
return $return;
}
if(check_ios_fb()) {
echo 'This page is viewed in the facebook inApp browser on iPhone or iPad';
} else {
echo 'This page is NOT viewed in the facebook inApp browser';
}
答案 2 :(得分:1)
"我不确定Android,但是当您使用iOS SDK的UIWebView时,它会将您应用的名称和版本作为用户代理的一部分发送( 。YourApp / 1.0)"
然后,您可以使用PHP检查是否正在使用您的应用内网页视图:
if (strpos($_SERVER['HTTP_USER_AGENT'], 'YourApp/') !== false)
我认为Android也做了类似的事情。
来源: Detect in-app browser (WebView) with PHP / Javascript
希望这适用于你
答案 3 :(得分:1)
这不是完整的解决方案,但你可以尝试这样的IOS(iPad / iPhone等)和其他
$internalBrowserOS = '';
if (strpos($_SERVER['HTTP_USER_AGENT'], 'FBAN') !== FALSE) {
if (strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone OS')) // or iPad
$internalBrowserOS = 'iPhone';
}else if(strpos($_SERVER['HTTP_USER_AGENT'], 'FB_IAB/FB4A') !== FALSE){
$internalBrowserOS = 'androidOrAnotherOne';
}