iOS13ではSafariの設定「デスクトップ用Webサイトを表示」がOnになっている場合、UserAgentがmacOS10.15と同じ値に変化する。
*この設定はiOSではデフォルトでOff、iPadOSではデフォルトでOnになっている。
「デスクトップ用Webサイトを表示」がOffの場合のUserAgent
iPadOSの場合。"iPad"が入っている。
plugins : "[object PluginArray]" mimeTypes : "[object MimeTypeArray]" cookieEnabled : "true" standalone : "false" geolocation : "[object Geolocation]" mediaCapabilities : "[object MediaCapabilities]" webdriver : "false" maxTouchPoints : "5" appCodeName : "Mozilla" appName : "Netscape" appVersion : "5.0 (iPad; CPU OS 13_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Mobile/15E148 Safari/604.1" platform : "iPad" product : "Gecko" productSub : "20030107" userAgent : "Mozilla/5.0 (iPad; CPU OS 13_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Mobile/15E148 Safari/604.1" vendor : "Apple Computer, Inc." vendorSub : "" language : "en-US" languages : "en-US" onLine : "true"
「デスクトップ用Webサイトを表示」がOnの場合のUserAgent
iPadOSの場合。macOSと区別がつかなくなる。
plugins : "[object PluginArray]" mimeTypes : "[object MimeTypeArray]" cookieEnabled : "true" standalone : "false" geolocation : "[object Geolocation]" mediaCapabilities : "[object MediaCapabilities]" webdriver : "false" maxTouchPoints : "5" appCodeName : "Mozilla" appName : "Netscape" appVersion : "5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15" platform : "MacIntel" product : "Gecko" productSub : "20030107" userAgent : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15" vendor : "Apple Computer, Inc." vendorSub : "" language : "en-US" languages : "en-US" onLine : "true"
実際のmacOS 10.15のUserAgent
plugins : "[object PluginArray]" mimeTypes : "[object MimeTypeArray]" cookieEnabled : "true" geolocation : "[object Geolocation]" mediaCapabilities : "[object MediaCapabilities]" webdriver : "false" maxTouchPoints : "0" appCodeName : "Mozilla" appName : "Netscape" appVersion : "5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15" platform : "MacIntel" product : "Gecko" productSub : "20030107" userAgent : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15" vendor : "Apple Computer, Inc." vendorSub : "" language : "ja-JP" languages : "ja-JP" onLine : "true"
「デスクトップ用Webサイトを表示」がOnになっている場合の識別方法
iOS, iPadOSの場合はmaxTouchPointsが0より大きい数値になっているので、これを利用する。
// macOS if (navigator.platform.indexOf('Mac') != -1) { // iOS13以上で"デスクトップ用Webサイトを表示"がOnの場合 if(navigator.maxTouchPoints != undefined && navigator.maxTouchPoints > 0) { return "iOS"; } return "Mac"; }
*Safari以外のブラウザではmaxTouchPointが存在しない場合があるので注意。
*現状ではmacOSにはタッチパネルの製品は無いので、OSがmacでmaxTouchPointが0より大きい場合、macOSである可能性は無い。
*WKWebViewはこの設定の影響を受けないので、WKWebView内で取得するUserAgentは変化しない。