2014-12-29 6 views
0

У меня есть веб-сайт, который я разрабатываю, и я планирую выпустить сопутствующее приложение рядом с ним, так как оно не выглядит так же хорошо на мобильных устройствах, как на рабочем столе. Есть много проблем с производительностью. Ive заметил, что на каком-то веб-сайте вам сообщают, что вы переходите на другую страницу, если используете мобильное устройство, и я хочу сделать что-то подобное, за исключением того, что появляется сообщение. Я уверен, что могу обрабатывать часть сообщения, но мне нужна помощь, это методология, определяющая использование мобильного устройства. Я видел этот сайт с помощью простого поиска Google:Обнаружение доступа к мобильному устройству

http://detectmobilebrowsers.com/

, но я не имею ни малейшего представления о том, как реализовать его с JS.

Спасибо за помощь заранее!

+0

Как насчет сделать небольшой поиск? [Обнаружение мобильного браузера] (http://stackoverflow.com/questions/11381673/detecting-a-mobile-browser) – Teemu

+0

На сайте detectmobilebrowsers.com есть кнопка javascript, содержащая скрипт, который они используют. Он использует шаблоны регулярных выражений, сопоставленные с строкой пользовательского агента данного браузера. –

ответ

0

Попробуйте

/** 
    * Mobile Detect 
    * @license http://www.opensource.org/licenses/mit-license.php The MIT License 
*/ 
class Mobile_Detect 
{ 
    protected $accept; 
    protected $userAgent; 
    protected $isMobile = false; 
    protected $isAndroid = null; 
    protected $isAndroidtablet = null; 
    protected $isIphone = null; 
    protected $isIpad = null; 
    protected $isBlackberry = null; 
    protected $isBlackberrytablet = null; 
    protected $isOpera = null; 
    protected $isPalm = null; 
    protected $isWindows = null; 
    protected $isWindowsphone = null; 
    protected $isGeneric = null; 
    protected $devices = array(
    "android" => "android.*mobile", 
    "androidtablet" => "android(?!.*mobile)", 
    "blackberry" => "blackberry", 
    "blackberrytablet" => "rim tablet os", 
    "iphone" => "(iphone|ipod)", 
    "ipad" => "(ipad)", 
    "palm" => "(avantgo|blazer|elaine|hiptop|palm|plucker|xiino)", 
    "windows" => "windows ce; (iemobile|ppc|smartphone)", 
    "windowsphone" => "windows phone os", 
    "generic" => "(kindle|mobile|mmp|midp|pocket|psp|symbian|smartphone|treo|up.browser|up.link|vodafone|wap|opera mini)"); 

    public function __construct() 
    { 
     $this->userAgent = $_SERVER['HTTP_USER_AGENT']; 
     $this->accept = $_SERVER['HTTP_ACCEPT']; 

     if (isset($_SERVER['HTTP_X_WAP_PROFILE']) || isset($_SERVER['HTTP_PROFILE'])) 
     { 
      $this->isMobile = true; 
     } 
     elseif (strpos($this->accept, 'text/vnd.wap.wml') > 0 || strpos($this->accept, 'application/vnd.wap.xhtml+xml') > 0) 
     { 
      $this->isMobile = true; 
     } 
     else 
     { 
      foreach ($this->devices as $device => $regexp) 
      { 
       if ($this->isDevice($device)) 
       { 
        $this->isMobile = true; 
       } 
      } 
     } 
    } 

    /** 
     * Overloads isAndroid() | isAndroidtablet() | isIphone() | isIpad() | isBlackberry() | isBlackberrytablet() | isPalm() | isWindowsphone() | isWindows() | isGeneric() through isDevice() 
     * 
     * @param string $name 
     * @param array $arguments 
     * @return bool 
    */ 
    public function __call($name, $arguments) 
    { 
     $device = substr($name, 2); 
     if ($name == "is" . ucfirst($device) && array_key_exists(strtolower($device), $this->devices)) 
     { 
      return $this->isDevice($device); 
     } 
     else 
     { 
      trigger_error("Method $name not defined", E_USER_WARNING); 
     } 
    } 

    /** 
     * Returns true if any type of mobile device detected, including special ones 
     * @return bool 
    */ 
    public function isMobile() 
    { 
     return $this->isMobile; 
    } 

    protected function isDevice($device) 
    { 
     $var = "is" . ucfirst($device); 
     $return = $this->$var === null ? (bool) preg_match("/" . $this->devices[strtolower($device)] . "/i", $this->userAgent) : $this->$var; 
     if ($device != 'generic' && $return == true) { 
      $this->isGeneric = false; 
     } 
     return $return; 
    } 
} 

    //call this way 
    $detect= new Mobile_Detect(); 
    if ($detect->isMobile()) 
    { 
     $_SESSION['mobile']="mobile"; 
    } 
Смежные вопросы