Статьи

Совет: Определите браузер и пользовательский агент с AS3

Следуйте этому краткому совету, чтобы узнать, как обнаружить интернет-браузер и пользовательский агент, используя AS3 и Flash.


Мы будем использовать TextFields и помощь ExternalInterface для извлечения агента пользователя через вызов JavaScript и отображения его в нашем SWF. Когда пользовательский агент сохранен, простой поиск по возвращенной строке даст нам интернет-браузер.


Запустите Flash и создайте новый Flash-документ, установите размер сцены 400x200px и частоту кадров 24fps.

обнаружить браузер и пользовательский агент флэш


обнаружить браузер и пользовательский агент флэш

Это интерфейс, который мы будем использовать, см. Изображение выше для имен экземпляров. Создайте его самостоятельно или просто используйте Source FLA.


Создайте новый класс ActionScript (Cmd + N), сохраните файл как Main.as и начните писать:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package
{
    import flash.display.Sprite;
    import flash.external.ExternalInterface;
    import flash.events.MouseEvent;
    import fl.transitions.Tween;
 
    public class Main extends Sprite
    {
        private var userAgent:String;
 
        public function Main():void
        {
            more.addEventListener(MouseEvent.MOUSE_UP, showFull);
            browserTxt.text = getUserAgent();
            letterpress.text = getUserAgent();
        }
 
        private function getUserAgent():String
        {
            try
            {
                userAgent = ExternalInterface.call(«window.navigator.userAgent.toString»);
                var browser:String = «[Unknown Browser]»;
     
                if (userAgent.indexOf(«Safari») != -1)
                {
                    browser = «Safari»;
                }
                if (userAgent.indexOf(«Firefox») != -1)
                {
                    browser = «Firefox»;
                }
                if (userAgent.indexOf(«Chrome») != -1)
                {
                    browser = «Chrome»;
                }
                if (userAgent.indexOf(«MSIE») != -1)
                {
                    browser = «Internet Explorer»;
                }
                if (userAgent.indexOf(«Opera») != -1)
                {
                    browser = «Opera»;
                }
            }
            catch (e:Error)
            {
                //could not access ExternalInterface in containing page
                return «[No ExternalInterface]»;
            }
 
            return browser;
        }
 
        private function showFull(e:MouseEvent):void
        {
            info.fullInfo.text = userAgent;
            var tween:Tween = new Tween(info,»y»,null,info.y,180,0.5,true);
        }
    }
}

Вызов ExternalInterface для функции JavaScript получит строку агента пользователя и использует метод indexOf() для поиска идентификатора каждого браузера в этой строке; если строка User Agent содержит имя браузера, который вы ищете, вы можете предположить, что это браузер, который использует пользователь. Вы можете добавить определенный браузер в этой области. Кнопка «больше» позволяет анимировать информационную панель на сцене и раскрывать полную информацию об агенте пользователя.

Если вызов ExternalInterface завершится неудачно, оператор try-catch подберет его и вернет простое сообщение об ошибке в текстовое поле. Может произойти сбой, если SWF-файл запускается в автономном проигрывателе Flash Player или если содержащаяся веб-страница запрещает его использование.


Не забудьте добавить имя класса в поле « Класс» в разделе « Публикация » на панели « Свойства» .

обнаружить браузер и пользовательский агент флэш


Чтобы увидеть SWF в действии (он может выдавать ошибки при тестировании в IDE), вы должны открыть файл в браузере, вы можете нажать Shift + Cmd + F12 ( File | Publish ), чтобы опубликовать файл HTML, а затем открыть или перетащите файл SWF из папки вашего проекта в браузер, чтобы увидеть, как работает файл.

обнаружить браузер и пользовательский агент флэш

Вы можете внести конкретные изменения в свое приложение на основе полученных данных браузера и агента пользователя.

Будьте осторожны с этим; использование строки агента пользователя считается ненадежным , так как пользователи могут изменять содержимое этой строки различными способами. Некоторые браузеры даже имеют функцию, которая позволяет им маскироваться под другие браузеры, изменяя их собственную строку агента пользователя. Было бы неразумно блокировать пользователя за пределами сайта (или только пускать его на сайт) только на основе строки агента пользователя.

Надеюсь, вам понравился этот Quick Tip, спасибо за чтение!