如何使用jquery检测特定的iOS版本?

时间:2012-11-07 23:56:34

标签: javascript google-maps ios6 ios6-maps

因此,映射链接打开地图应用程序就像以前一样,我想根据用户是在iOS 6还是其他(iOS 4,5,Android,等等)呈现不同的链接。

类似于: - 如果在iOS 6.0或更高版本上,请显示http://maps.apple.com?q=“地址”,如果是其他,则显示http://maps.google.com?q=“地址”。

注意:我意识到你也可以直接调用地图应用程序,而不是通过网络链接(现在没有方便),但这不会解决问题,因为有人在Android或较小的iOS上将无法使用它。

4 个答案:

答案 0 :(得分:16)

您可以使用navigator.userAgent字符串检测iOS版本。类似的东西:

if(/(iPhone|iPad|iPod)\sOS\s6/.test(navigator.userAgent)) {
    // use apple maps
}

请注意,这绝不是未来证据,用户代理字符串可以更改,操作系统也是如此。此外,AFAIK,所有平台都可以通过浏览器使用谷歌地图,包括iOS 6。

答案 1 :(得分:5)

这里有一些确定iOS和Android操作系统版本的JS。不需要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 ) { ... }

答案 2 :(得分:2)

您想要查看用户代理字符串。 Safari网络浏览器有一种方式可以报告正在使用的设备(iPad,iPhone等)以及版本号,因此只需索引该紧凑小字符串中的信息即可。

http://developer.apple.com/library/IOS/#documentation/AppleApplications/Reference/SafariWebContent/OptimizingforSafarioniPhone/OptimizingforSafarioniPhone.html#//apple_ref/doc/uid/TP40006517-SW3

其他一些有用/非常相关的Stackoverflow问题:

Detect iOS version less than 5 with JavaScript

Detecting iOS Version on a Web Page

Check if iOS version is 3.0 or higher with PHP or Javascript

答案 3 :(得分:1)

使用JavaScript查看用户代理标头。

navigator.userAgent