585 Stimmen

Erkennen, ob das Gerät iOS ist

Ich frage mich, ob es möglich ist, zu erkennen, ob ein Browser auf iOS läuft, ähnlich wie bei der Feature-Erkennung mit Modernizr (obwohl dies offensichtlich eine Geräteerkennung und keine Feature-Erkennung ist).

Normalerweise würde ich Feature-Erkennung bevorzugen, aber ich muss herausfinden, ob ein Gerät iOS ist, aufgrund der Art und Weise, wie sie Videos behandeln, wie in dieser Frage YouTube API not working with iPad / iPhone / non-Flash device

0 Stimmen

Siehe [Was ist die iOS 5 Benutzeroberfläche?][1] (Duplikat?). [1]: stackoverflow.com/questions/7825873/…

1 Stimmen

Ist dies eine clientseitige oder serverseitige Erkennung?

0 Stimmen

Hey @DouglasGreenshields, es ist clientseitig

0voto

Royal Punkte 302

Weil navigator.platform veraltet ist und es besser ist, es nicht mehr zu verwenden, möchte ich eine andere Lösung hinzufügen.

Sie können auf MacOS-Systeme filtern, indem Sie den navigator.vendor überprüfen. Wenn das Ergebnis Apple Computer, Inc. ist, wissen Sie, dass es sich um MacOS handelt.

3 Stimmen

navigator.vendor wird ebenfalls veraltet dargestellt.

-1voto

Alan Punkte 6738

Sie können auch includes verwenden

  const isApple = ['iPhone', 'iPad', 'iPod', 'iPad Simulator', 'iPhone Simulator', 'iPod Simulator',].includes(navigator.platform)

1 Stimmen

Dieses vermisst die "... Simulator" Vielfalt. So viele Antworten, aber leider nur wenige gut recherchiert :(

0 Stimmen

-2voto

Neku80 Punkte 183

In meinem Fall war der Benutzer-Agent nicht gut genug, da auf dem iPad der Benutzer-Agent derselbe war wie in Mac OS. Deshalb musste ich einen kleinen Trick machen:

var mql = window.matchMedia("(orientation: landscape)");

/**
 * Wenn wir im Querformat sind, aber die Höhe größer ist als die Breite
 */
if(mql.matches && window.screen.height > window.screen.width) {
    // iOS
} else {
    // Mac OS
}

-3voto

Mithun Sreedharan Punkte 47729

var isiOSSafari = (navigator.userAgent.match(/like Mac OS X/i)) ? true: false;

0 Stimmen

Dieser ternäre Operator ist nutzlos; test gibt einen boolean Wert zurück und kann match ersetzen.

-3voto

viebel Punkte 16052

Um die iOS-Version zu erkennen, muss der Benutzer-Agent mit einem JavaScript-Code wie diesem zerlegt werden:

 var res = navigator.userAgent.match(/; CPU.*OS (\d_\d)/);
    if(res) {
        var strVer = res[res.length-1];
        strVer = strVer.replace("_", ".");
        version = strVer * 1;
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X