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

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

Barbara Streisand
Barbara Streisandoriginal
2024-12-21 12:37:09906parcourir

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

Puis-je détecter si un appareil fonctionne sur iOS ?

Introduction

Fonctionnalité While la détection est généralement préférée à la détection de périphérique, il peut y avoir des scénarios dans lesquels il devient nécessaire de déterminer si un périphérique s'exécute sur iOS.

Méthodes de détection

Renifleur d'agent utilisateur (non recommandé) :

Avertissement : le reniflage d'agent utilisateur peut ne pas être fiable et est susceptible d'être manipulé. Cependant, à des fins héritées, vous pouvez utiliser le code suivant pour vérifier iOS dans la chaîne de l'agent utilisateur :

var iOS = !window.MSStream && /iPad|iPhone|iPod/.test(navigator.userAgent);

Détection de plate-forme :

Une méthode plus robuste implique de vérifier la plate-forme de l'appareil à l'aide de navigator.platform :

function iOS() {
  return [
    'iPad Simulator',
    'iPhone Simulator',
    'iPod Simulator',
    'iPad',
    'iPhone',
    'iPod'
  ].includes(navigator.platform)
  || (navigator.userAgent.includes("Mac") && "ontouchend" in document);
}

Cette approche prend également en compte les appareils iPad sur iOS 13, où la chaîne de l'agent utilisateur est identique à MacOS.

Déduction de la version iOS :

Bien que les chaînes de l'agent utilisateur puissent être utilisées pour déduire la version iOS, il convient de noter que cette approche n'est pas fiable en raison du potentiel dépréciations futures. Comme alternative, vous pouvez utiliser la vérification de l'historique par rapport aux API introduites par iOS pour déduire la version du système d'exploitation. Cependant, cette approche a aussi ses limites en termes de fiabilité.

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';
}

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!

Déclaration:
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