当在MobileSafari上访问该页面时,有没有办法(使用Javascript,PHP等)来检测iOS页面的版本?
答案 0 :(得分:8)
这里有一些用于确定iOS和Android操作系统版本的JS。
使用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 ) { ... }
答案 1 :(得分:4)
您应该能够为它解析UserAgent字符串。
这是一个示例用户代理字符串,用于声明操作系统为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
答案 2 :(得分:1)
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/
答案 3 :(得分:0)
您真的会检查浏览器的版本,它可以告诉您支持的内容。这里有一篇文章提供了一些关于如何检测它并确定它支持的信息。
http://www.mobilexweb.com/blog/iphone4-ios4-detection-safari-viewport
答案 4 :(得分:0)
您必须查询PHP中的$_SERVER['HTTP_USER_AGENT']
值(或其在JavaScript中的等价物)并解析它。我将构建一个帮助方法来解析和解码用户代理并返回访问您的站点/应用程序的iOS设备和版本。
The reference material you need is online over at Apple。请查看“使用Safari用户代理字符串”部分。
答案 5 :(得分:0)
您不仅应检测其是否为iOS设备,还应检测该设备是否至少在iOS 2.0上运行。因为支持2.0 mulittouch和其他重要功能。维基百科上的功能参考。