iOS端末を判定する

iPad で重宝しているウェブアプリケーションの一つに 37signals Chalk があるんだけど、PC のブラウザで表示すると「サポートしていません」という旨を示すエラーページに飛ぶ様になっている。ところが最近のブラウザにはユーザエージェントを変更(悪く言うと偽装)できるものが多くて、そうすると実際に iPad で表示するものを簡単に見られてしまい開発者としてはあまり心地良くない場合もあると思う。

そこでユーザエージェントだけを使って判定する事に加えて、以前書いた様に iOS の Mobile Safari が持っているタッチイベントを持っているかどうかを併せて条件に入れておくと確実で良い。

if (('createTouch' in document) && (navigator.platform === 'iPad')) {
  window.location.replace('path');
}

投稿者: hkitago

個人事業主でウェブと iOS, Android アプリの開発者で一児の父親。JavaScript, ActionScript, AppleScript, PHP, SQL, ObjC, Swift, Java の読書実行試験運用管理を生業とし、Bind, Postfix, Apache を MacOS で使い、エディタは Vi, mi, Kod, Smultron, TextWrangler を経て Coda, Xcode, Android Studio といった IDE と CotEditor を重用しています。