Astuce Détecter le navigateur et l'agent utilisateur avec AS3

Suivez cette astuce pour apprendre à détecter le navigateur Internet et l'agent utilisateur à l'aide d'AS3 et de Flash..


Étape 1: bref aperçu

Nous utiliserons TextFields et l'aide de ExternalInterface pour récupérer l'agent d'utilisateur, via un appel JavaScript, et l'afficher dans notre fichier SWF. Avec l’agent d’utilisateur stocké, une simple recherche dans la chaîne renvoyée nous donne le navigateur Internet..


Étape 2: Configurez votre fichier Flash

Lancez Flash et créez un nouveau document Flash, réglez la taille de la scène sur 400x200px et la cadence sur 24 images par seconde..


Étape 3: interface

C'est l'interface que nous allons utiliser. Reportez-vous à l'image ci-dessus pour connaître les noms d'instance. Recréez-le vous-même ou utilisez simplement la source FLA.


Étape 4: ActionScript

Créez une nouvelle classe ActionScript (Cmd + N), enregistrez le fichier sous Main.as et commencez à écrire:

 package import flash.display.Sprite; import flash.external.ExternalInterface; import flash.events.MouseEvent; import fl.transitions.Tween; classe publique Main étend Sprite private var userAgent: String; fonction publique Main (): void more.addEventListener (MouseEvent.MOUSE_UP, showFull); browserTxt.text = getUserAgent (); letterpress.text = getUserAgent ();  function privée getUserAgent (): String try userAgent = ExternalInterface.call ("window.navigator.userAgent.toString"); var browser: String = "[Navigateur inconnu]"; if (userAgent.indexOf ("Safari")! = -1) navigateur = "Safari";  if (userAgent.indexOf ("Firefox")! = -1) browser = "Firefox";  if (userAgent.indexOf ("Chrome")! = -1) navigateur = "Chrome";  if (userAgent.indexOf ("MSIE")! = -1) browser = "Internet Explorer";  if (userAgent.indexOf ("Opera")! = -1) navigateur = "Opera";  catch (e: Error) // n'a pas pu accéder à ExternalInterface dans la page contenant la valeur renvoyée "[No ExternalInterface]";  navigateur de retour;  fonction privée showFull (e: MouseEvent): void info.fullInfo.text = userAgent; var tween: Tween = new Tween (info, "y", null, info.y, 180,0.5, true); 

Un Interface externe appel à une fonction JavaScript obtiendra le Agent utilisateur chaîne et utiliser le Indice de() méthode pour rechercher l'ID de chaque navigateur dans cette chaîne; Si la chaîne de l'agent d'utilisateur contient le nom du navigateur que vous recherchez, vous pouvez en déduire qu'il s'agit du navigateur utilisé par l'utilisateur. Vous pouvez ajouter un navigateur spécifique dans cette zone. le plus bouton animera le Info panneau de la scène et révéler les informations complètes sur l'agent utilisateur.

Si la Interface externe Si l'appel échoue, l'instruction try-catch prendra ceci en compte et renverra un simple message d'erreur dans la zone de texte. Il peut échouer si le fichier SWF est exécuté dans Flash Player autonome ou si la page Web qui le contient interdit son utilisation..


Étape 5: Classe de document

N'oubliez pas d'ajouter le nom de la classe à la Classe champ dans le Publier section de la Propriétés panneau.


Étape 6: Publier

Pour voir le fichier SWF en action (il peut générer des erreurs lors des tests dans l'EDI), vous devez ouvrir le fichier dans le navigateur, vous pouvez appuyer sur les touches Maj + Cmd + F12 (Fichier | Publier) pour publier un fichier HTML, puis ouvrez-le ou faites glisser le fichier SWF de votre dossier de projet vers le navigateur pour que le fichier fonctionne.


Conclusion

Vous pouvez apporter des modifications spécifiques à votre application en fonction du navigateur et des données de l'agent utilisateur obtenues..

Sois prudent avec ça; L'utilisation de la chaîne de l'agent utilisateur est considérée comme non fiable, car les utilisateurs peuvent modifier le contenu de cette chaîne de différentes manières. Certains navigateurs possèdent même une fonctionnalité leur permettant de se faire passer pour d'autres navigateurs en modifiant leur propre chaîne d'agent d'utilisateur. Il serait déconseillé de verrouiller l'utilisateur en dehors d'un site (ou de ne le laisser entrer que sur un site) en se basant uniquement sur la chaîne de l'agent utilisateur..

J'espère que vous avez aimé ce petit conseil, merci d'avoir lu!