如果网页在iPad应用程序内浏览器中运行,如何检测?

时间:2014-04-10 23:11:37

标签: php facebook ipad detection

有没有办法在php中知道网页是否在Facebook应用内浏览器中运行?

当我在Facebook上发布链接时,我需要知道,如果用户通过Facebook App for iPad查看网页,或通过iPad在Safari Safari浏览器上查看。

我知道我可以检测到iPad,但这还不够,因为facebook App和facebook都可以在iPad上运行。

有什么建议吗?

由于

4 个答案:

答案 0 :(得分:2)

这样的事可能对你有用......

if (
("standalone" in window.navigator) &&
!window.navigator.standalone
){

// .... code here ....
}

检查来源:

http://www.bennadel.com/blog/1950-Detecting-iPhone-s-App-Mode-Full-Screen-Mode-For-Web-Applications.htm

答案 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';
}