Определение версии iOS на веб-странице

Есть ли способ (с помощью Javascript, PHP и т. Д.) Определить версию страницы iOS, когда страница посещается в MobileSafari?

7 ответов

Вот немного JS для определения версии iOS и Android OS.

Протестировано с фактическими строками пользовательских агентов для iOS 4.3 до 6.0.1 и Android 2.3.4 до 4.2

var userOS;    // will either be iOS, Android or unknown
var userOSver; // this is a string, use Number(userOSver) to convert

function getOS( )
{
  var ua = navigator.userAgent;
  var uaindex;

  // determine OS
  if ( ua.match(/iPad/i) || ua.match(/iPhone/i) )
  {
    userOS = 'iOS';
    uaindex = ua.indexOf( 'OS ' );
  }
  else if ( ua.match(/Android/i) )
  {
    userOS = 'Android';
    uaindex = ua.indexOf( 'Android ' );
  }
  else
  {
    userOS = 'unknown';
  }

  // determine version
  if ( userOS === 'iOS'  &&  uaindex > -1 )
  {
    userOSver = ua.substr( uaindex + 3, 3 ).replace( '_', '.' );
  }
  else if ( userOS === 'Android'  &&  uaindex > -1 )
  {
    userOSver = ua.substr( uaindex + 8, 3 );
  }
  else
  {
    userOSver = 'unknown';
  }
}

Затем, чтобы определить конкретную версию и выше, попробуйте:

if ( userOS === 'iOS' && Number( userOSver.charAt(0) ) >= 5 ) { ... }

Вы должны быть в состоянии проанализировать строку UserAgent для этого.

Вот пример Строка User Agent, которая объявляет ОС как 4.3.1

Mozilla/5.0 (iPad; U; CPU OS 4_3_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8G4 Safari/6533.18.5

PHP

function ismobilesafari() {
    if( preg_match( '/(iPod|iPhone|iPad)/', $_SERVER[ 'HTTP_USER_AGENT' ] ) ) {
        return true;
    } else {
        return false;
    }
}

JS

function ismobilesafari() {
    if( navigator.userAgent.match( /(iPod|iPhone|iPad)/ ) ) {
        return true
    } else {
        return false
    }
}

Ссылка: http://alan.edward.es/posts/detecting-the-awesomeness-that-is-mobile-safari/

В Javascript вы можете сделать что-то вроде этого:

Вы должны не только определить, является ли оно устройством iOS, но и работать ли оно хотя бы на iOS 2.0. Потому что начиная с 2.0 поддерживаются мультитач и другие важные функции. Ссылка на функции находится в Википедии.

Вам придется допросить $_SERVER['HTTP_USER_AGENT'] значение в PHP (или его эквивалент в JavaScript) и проанализировать его. Я хотел бы создать вспомогательный метод, который анализирует и декодирует пользовательский агент и возвращает iOS-устройство и версию, которая посещает ваш сайт / приложение.

Справочный материал, который вам нужен, находится на сайте Apple. Взгляните на раздел "Использование строки пользовательского агента Safari".

Вы действительно будете проверять версию браузера, которая может сказать вам, что поддерживается или нет. Здесь есть статья, которая дает некоторую приличную информацию о том, как обнаружить это и определить, что он поддерживает.

http://www.mobilexweb.com/blog/iphone4-ios4-detection-safari-viewport

Другие вопросы по тегам