【问题标题】:How can i detect, if webpage is running in iPad in-app browser?我如何检测网页是否在 iPad 应用内浏览器中运行?
【发布时间】:2014-04-10 23:11:36
【问题描述】:

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

当我在 facebook 上发布链接时,我需要知道用户是通过 iPad 版 facebook 应用程序查看网页,还是通过 iPad Safari 浏览器上查看的 facebook。

我知道我可以检测到 iPad,但这还不够,因为 facebook 应用程序和通过浏览器的 facebook 都将在 iPad 上运行。

有什么建议吗?

谢谢

【问题讨论】:

    标签: php facebook ipad detection


    【解决方案1】:

    我今天也遇到了这个问题。 我正在比较 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】:

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

      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

      【讨论】:

      • 感谢您的回答,我需要它是服务器端的。不过还是谢谢。
      【解决方案3】:

      “我不确定 Android,但是当您使用 iOS SDK 的 UIWebView 时,它会将您的应用程序的名称和版本作为用户代理 (YourApp/1.0) 的一部分发送。”

      然后您可以使用 PHP 检查您的应用内 webview 是否正在使用:

      if (strpos($_SERVER['HTTP_USER_AGENT'], 'YourApp/') !== false)
      

      我认为 Android 也做了类似的事情。

      来源: Detect in-app browser (WebView) with PHP / Javascript

      希望这对你有用

      【讨论】:

        【解决方案4】:

        这不是完整的解决方案,但您可以在 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';
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-02-09
          • 1970-01-01
          • 1970-01-01
          • 2018-04-11
          • 1970-01-01
          • 2012-06-21
          • 2011-12-25
          相关资源
          最近更新 更多