Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery检测特定的iOS版本?_Javascript_Google Maps_Ios6_Ios6 Maps - Fatal编程技术网

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

Javascript 如何使用jquery检测特定的iOS版本?,javascript,google-maps,ios6,ios6-maps,Javascript,Google Maps,Ios6,Ios6 Maps,为了让地图链接像以前一样打开地图应用程序,我想根据用户是在iOS 6上还是其他(iOS 4、5、Android等)上显示不同的链接 类似于:--如果在iOS 6.0或更高版本上,则显示“地址”,如果其他,则显示“地址” 注意:我知道你也可以直接调用地图应用程序,而不是通过web链接(现在手头上没有),但这并不能解决问题,因为Android或更低版本的iOS上的用户将无法使用该应用程序。你想查看用户代理字符串吗。Safari web浏览器有一种报告正在使用的设备(iPad、iPhone等)以及版本

为了让地图链接像以前一样打开地图应用程序,我想根据用户是在iOS 6上还是其他(iOS 4、5、Android等)上显示不同的链接

类似于:--如果在iOS 6.0或更高版本上,则显示“地址”,如果其他,则显示“地址”


注意:我知道你也可以直接调用地图应用程序,而不是通过web链接(现在手头上没有),但这并不能解决问题,因为Android或更低版本的iOS上的用户将无法使用该应用程序。

你想查看用户代理字符串吗。Safari web浏览器有一种报告正在使用的设备(iPad、iPhone等)以及版本号的方法,因此这是一个紧凑的小字符串中信息的索引问题

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


您可以使用
navigator.userAgent
字符串检测iOS版本。比如:

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

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

使用JavaScript查看用户代理标题

navigator.userAgent

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

也许这会有所帮助:链接上的信息完全做到了。谢谢谢谢你,大卫。你在上面发布的链接没有这个优雅,但看起来更能证明未来,所以我选择了这个。谢谢