JavaScriptを使用してiOS端末のVerion判定が必要になりました。
stackoverflowで探すと直ぐに見つかりました。
スゴいなー、ありがたいなー。
Detect iOS version less than 5 with JavaScript
お知恵を拝借しこんな風にしてみました。
function iosVersion () { var v, versions; if ( /iP(hone|od|ad)/.test( navigator.platform ) ) { // supports iOS 2.0 and later: <http://bit.ly/TJjs1V> v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/); versions = [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)]; return versions[ 0 ]; } return versions; } |
そのまんまやけど、
今回はメジャーバージョンだけ分かれば良かったので先頭数値だけを返すことにしました。
iOSはVersion No.が返ってきます。
その他のOSの場合はundefinedになります。
使う時はundefinedのチェックを先に行います。
var version = iosVersion(); if ( typeof version !== "undefined" && version > 4 ) { // iOS でかつ Version 5 以上 } |
iOSチェックの正規表現、こんな風にもできるんやね、覚えた!
/iP(hone|od|ad)/.test( navigator.platform ) |
コード内コメントURLはAppleの iOS Developer Library へのリンクです。
Using the Safari User Agent String
iOS 2.0 User agent はこんな風になってるらしい
Mozilla/5.0 (iPhone; U; CPU iOS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/XXXXX Safari/525.20 |
(iPhone; U; CPU iOS 2_0 like Mac OS X; en-us)
- The platform string.
iPhone
is replaced withiPod
when running on an iPod touch andiPad
when running on an iPad. AppleWebKit/525.18.1
- The WebKit engine build number.
Version/3.1.1
- The Safari family version.
Mobile/XXXXX
- The mobile version number, where
XXXX
is the build number. Safari/525.20
- The Safari build number.