iOS端末を判定する


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

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

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