次のようなJavaScriptを使用してiPadデバイスを検出できました。
_function isDeviceiPad(){
return navigator.platform.match(/iPad/i);
}
_
これはiPadデバイスの検出には完全に機能しましたが、iPad Pro (10.5 inch)
からチェックした場合、それがiPadであることを検出しません。
さらに調査するために、navigator
オブジェクトにドリルダウンし、platform
とuserAgent
の両方をチェックして、次の結果を得ました。
_navigator.platform = 'MacIntel';
navigator.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)';
_
問題は、iPad
ではなく_navigator.platform = 'MacIntel'
_(MacBook Proと同じ)が返されることです。これがMacBook ProではなくiPadであることを検出する方法が必要ですが、ナビゲーターは古いiPadの場合のようにiPad
を返さないようです。
この問題をどのように修正できるか考えていますか?
これには正規表現を使用できます。
var isIPadPro = /Macintosh/.test(navigator.userAgent) && 'ontouchend' in document;
「iPad Pro 10.5
」デバイスを検出する最も簡単な方法は、"window.screen.height x window.screen.width = 1112 x 834"
である画面サイズを確認することです。
しかし、なぜデバイスモデルを検出する必要があるのかと思います。モバイルブラウザを検出する場合は、次の質問をご覧ください。 モバイルブラウザの検出
コンデンサには、デバイス情報を取得するための便利なWebプラグインがあります( https://capacitor.ionicframework.com/docs/apis/device#example )。 iPad Proと通常のiPadを区別しませんが、このプラグインの使用と提案された画面サイズソリューションを組み合わせることができます。
これを自分で行いたい場合は、次のコードをご覧ください。 https://github.com/ionic-team/capacitor/blob/master/core/src/web/device ts
それらを区別するために画面サイズを使用できるはずです。検出したい各iPadプロの真の価値を見つける必要があると思います。
window.screen.height
window.screen.width