iOS デバイスの識別
機能検出とは対照的に、この質問は、ブラウザが iOS デバイス上で動作しているかどうかを判断する方法を確立することを目的としています。機能検出の重要性にもかかわらず、関連するスタック オーバーフローのディスカッションで強調されているように、iOS デバイスを検出する必要性はビデオの独自の処理から生じます。
検出方法
デバイス検出の領域のナビゲート
-
ユーザー エージェントの 2 つのアプローチに遭遇します。スニッフィング: このメソッドは、ブラウザのユーザー エージェント文字列を調べてデバイス タイプを識別します。ただし、このアプローチには潜在的な落とし穴があることに注意することが重要です。
- ユーザー エージェントは、ユーザーまたはブラウザ拡張機能によって偽装される可能性があります。
- iOS 13 iPad では、macOS と同じユーザー エージェントが表示されるようになりました。 13
-
機能推論: この手法は、さまざまな iOS バージョンの既知の機能利用可能タイムラインを利用します。たとえば、次のことがわかっています。
- History API は iOS 4 で導入されました
- matchMedia API は iOS 5 でデビューしました
- webAudio API は iOS 6 で公開されました
- iOS に WebSpeech API が登場7
注意: このアプローチは、これらの機能が将来の iOS バージョンで廃止されないという前提に基づいています。
検出
iOS デバイスを検出するには、次の方法を使用できます。コード:
1 2 3 4 5 6 7 8 9 10 11 12 | function iOS() {
return [
'iPad Simulator' ,
'iPhone Simulator' ,
'iPod Simulator' ,
'iPad' ,
'iPhone' ,
'iPod'
].includes(navigator.platform)
|| (navigator.userAgent.includes( "Mac" ) && "ontouchend" in document);
}
|
ログイン後にコピー
iOS のバージョンを検出するには、次のコードを使用できます (ただし、制限事項には注意してください):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | function iOSversion() {
if (iOS) {
if (window.indexedDB) {
return 'iOS 8 and up' ;
}
if (window.SpeechSynthesisUtterance) {
return 'iOS 7' ;
}
if (window.webkitAudioContext) {
return 'iOS 6' ;
}
if (window.matchMedia) {
return 'iOS 5' ;
}
if (window.history && 'pushState' in window.history) {
return 'iOS 4' ;
}
return 'iOS 3 or earlier' ;
}
return 'Not an iOS device' ;
}
|
ログイン後にコピー
以上がiOS デバイス上でブラウザが実行されているかどうかを確実に検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。