🌕

【JavaScript】Navigator: userAgentを用いた端末(iPad)判定

2024/06/19に公開

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