web-dev-qa-db-fra.com

Navigateur Agent utilisateur pour Safari sur iOS 7

Je souhaite ouvrir mon site uniquement sur iPhone et iPod avec le navigateur Safari. Pour tout autre navigateur comme Chrome, Dolphin, etc., il ne devrait pas s'ouvrir.

Mais actuellement, je reçois le même agent d'utilisateur de presque tous les appareils:

Pour Safari:

User Agent String :: mozilla/5.0 (iphone; cpu iphone os 7_0_2 like mac os x) applewebkit/537.51.1 (khtml, like gecko) version/7.0 mobile/11a501 safari/9537.53

Pour Chrome:

User Agent String :: mozilla/5.0 (iphone; cpu iphone os 7_0_2 like mac os x) applewebkit/537.51.1 (khtml, like gecko) crios/30.0.1599.16 mobile/11a501 safari/8536.25

Pour le navigateur Mercury:

User Agent String :: mozilla/5.0 (iphone; cpu iphone os 6_0_1 like mac os x) applewebkit/536.26 (khtml, like gecko) mercury/7.4.2 mobile/10a523 safari/8536.25

Pour le navigateur Dolphin:

User Agent String :: mozilla/5.0 (iphone; cpu iphone os 7_0_2 like mac os x) applewebkit/537.51.1 (khtml, like gecko) version/6.0 mobile/10a523 safari/8536.25

Avec Chrome, je peux voir en vérifiant crios et Mercury en mercury chaîne, mais qu'en est-il des autres navigateurs qui semblent avoir le même agent utilisateur que Safari?

13
Novice User

Le autre réponse n'est pas strictement correct. Sur iOS, Apple empêche les navigateurs concurrents d’inclure leur propre moteur de rendu; Tous doivent utiliser la vue Web standard. 

Ainsi, tous ces navigateurs tiers (avec des fonctionnalités telles que la synchronisation des favoris, etc.) sont simplement des wrappers autour de la visualisation Web optimisée par Safari qui rend réellement la page, d'où ils ont tous la chaîne d'agent utilisateur Safari.

28
Andy Nugent

Les navigateurs le font très délibérément pour empêcher les gens de faire ce que vous essayez de faire. Leurs développeurs estiment que, puisqu'ils utilisent le même moteur Web (WebKit, blink ou gecko) que les autres, ils rendront très bien les pages optimisées pour des navigateurs similaires (ce qui est probablement vrai). 

Donc, probablement, il n'y a aucun moyen de le savoir 

5
ksimons

Résout pour le mercure, l'opéra, le chrome n firefox mais pas le dauphin

(
  (/(iPad|iPhone|iPod)/gi).test(userAgent) &&
  !(/CriOS/).test(userAgent) &&
  !(/FxiOS/).test(userAgent) &&
  !(/OPiOS/).test(userAgent) &&
  !(/mercury/).test(userAgent)
)
0
aWebDeveloper