Maison > interface Web > js tutoriel > Comment puis-je détecter de manière fiable si un navigateur s'exécute sur un appareil iOS ?

Comment puis-je détecter de manière fiable si un navigateur s'exécute sur un appareil iOS ?

Linda Hamilton
Libérer: 2024-12-06 06:51:11
original
222 Les gens l'ont consulté

How Can I Reliably Detect if a Browser is Running on an iOS Device?

Identification des appareils iOS

Contrairement à la détection de fonctionnalités, la question cherche à établir une méthode permettant de déterminer si un navigateur fonctionne sur un appareil iOS. Malgré l'importance de la détection des fonctionnalités, la nécessité de détecter les appareils iOS découle de leur gestion unique des vidéos, comme le souligne une discussion connexe sur Stack Overflow.

Méthodes de détection

Naviguer dans le domaine de la détection des appareils , nous rencontrons deux approches :

  1. User Agent Sniffing : Cette méthode s'appuie en examinant la chaîne de l'agent utilisateur du navigateur pour identifier le type de périphérique. Cependant, il est crucial de noter les pièges potentiels de cette approche :

    • Les agents utilisateurs peuvent être usurpés par les utilisateurs ou les extensions de navigateur.
    • Les iPad iOS 13 présentent désormais des agents utilisateurs identiques à macOS. 13 ordinateurs.
  2. Fonctionnalité Inférence :Cette technique exploite les délais de disponibilité des fonctionnalités connus pour différentes versions d'iOS. Par exemple, nous savons que :

    • L'API History a été introduite dans iOS 4
    • L'API matchMedia a fait ses débuts dans iOS 5
    • L'API webAudio a été dévoilée dans iOS 6
    • L'API WebSpeech est apparue dans iOS 7

Attention : Cette approche repose sur l'hypothèse que ces fonctionnalités ne seront pas obsolètes dans les futures versions d'iOS.

Mise en œuvre de la Détection

Pour détecter un appareil iOS, vous pouvez utiliser les éléments suivants code :

function iOS() {
  return [
    'iPad Simulator',
    'iPhone Simulator',
    'iPod Simulator',
    'iPad',
    'iPhone',
    'iPod'
  ].includes(navigator.platform)
  // iPad on iOS 13 detection
  || (navigator.userAgent.includes("Mac") && "ontouchend" in document);
}
Copier après la connexion

Pour détecter la version iOS, vous pouvez utiliser le code suivant (mais soyez conscient de ses limites) :

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';
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal