🌕
【JavaScript】Navigator: userAgentを用いた端末(iPad)判定
iPad判定に注意が必要
iPad(OS13以上)で、Safariの設定に「デスクトップ用Webサイトを表示」
という機能が追加され、
「デスクトップ用Webサイトを表示」
がオンになっている場合、ユーザエージェント判定がipad
ではなくmacintosh
となるため、ipad
の文字列検索のみで判定ができなくなった。
以下条件での判定が必要
【ipad】の文字列を含む || 【macintosh】の文字列を含む && 「タッチ機能がついているか」
コード例
const agent = navigator.userAgent.toLowerCase();
const isiPhone = /iphone|ipod/.test(agent);
const isiPad = /ipad|macintosh/.test(agent) && "ontouchend" in document;
Discussion