Как я могу определить конкретную версию iOS с помощью jquery?
Чтобы ссылки на карты открывали приложение карт, как это было раньше, я хочу представить другую ссылку в зависимости от того, работает ли пользователь на iOS 6 или на другом (iOS 4, 5, Android и т. Д.).
Что-то вроде: - если на iOS 6.0 или выше, показать http://maps.apple.com/?q="адрес", если другой, показать http://maps.google.com/?q="адрес".
ПРИМЕЧАНИЕ. Я понимаю, что вы также можете вызывать приложение карт напрямую, а не через веб-ссылку (сейчас это не удобно), но это не решит проблему, так как кто-то на Android или более поздней iOS не получит никакой пользы от тот.
4 ответа
Вы можете определить версию iOS, используя navigator.userAgent
строка. Что-то вроде:
if(/(iPhone|iPad|iPod)\sOS\s6/.test(navigator.userAgent)) {
// use apple maps
}
Обратите внимание, что это никоим образом не является перспективой, строки агента пользователя могут измениться, как и ОС. Также AFAIK, Google Maps через браузер доступен на всех платформах, включая iOS 6.
Вот немного JS для определения версии iOS и Android OS. Не требуется jQuery.
Протестировано с фактическими строками пользовательских агентов для 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(/iPod/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 ) { ... }
Вы хотите посмотреть на строку агента пользователя. В веб-браузере Safari есть способ сообщить, какое устройство (iPad, iPhone и т. Д.) Используется, а также номер версии, так что это вопрос индекса информации в этой компактной строчке.
Некоторые другие полезные / очень связанные вопросы Stackru:
Определить версию iOS менее 5 с помощью JavaScript
Используйте JavaScript для просмотра заголовка пользовательского агента.
navigator.userAgent