Конкретные цели BlackBerry с пользовательским агентом - PullRequest
2 голосов
/ 25 октября 2011

Я обнаружил этот javascript для обнаружения устройств BlackBerry:

<script type="text/javascript">
    var ua = navigator.userAgent;
    if (ua.indexOf("BlackBerry") >= 0) {
        if (ua.indexOf("Version/") >= 0) { // ***User Agent in BlackBerry 6 and BlackBerry 7
            Verposition = ua.indexOf("Version/") + 8;
            TotLenght = ua.length;
            document.write("Jorgesys  BB OS Version :: " + ua.substring(Verposition, Verposition + 3));
        }
        else {// ***User Agent in BlackBerry Device Software 4.2 to 5.0
            var SplitUA = ua.split("/");
            document.write("Jorgesys BB OS Version :: " + SplitUA[1].substring(0, 3));
        }
    }
</script>

НО должен указывать на конкретные поддерживаемые BlackBerry:

Blackberry: 9630
9700
8900
9000

Возможно ли нацелиться только на этих Blackberry ??

Спасибо!

1 Ответ

2 голосов
/ 25 октября 2011

Да, у каждого агента есть версия Blackberry.

Пример:
**BlackBerry9000**/5.0.0.93 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/179

Больше информации на сайте разработчиков.
http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/How-to-detect-the-BlackBerry-Browser/ta-p/559862?IID=DEVSF30

используйте простое регулярное выражение, чтобы получить версию.

<script type="text/javascript">
    var ua = "BlackBerry9000/5.0.0.93 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/179";
    var match = ua.match(/^BlackBerry[0-9]*/);
    console.log(match[0]);

    var ua = "Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/X.X.X.X Mobile Safari/534.11+";
    var match = ua.match(/BlackBerry\s[0-9]*/);
    console.log(match[0]);

    var ua = "Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/0.0.1 Safari/534.8+";
    var match = ua.match(/RIM Tablet OS\s[0-9].[0-9].[0-9]/);
    console.log(match[0]);
</script>
...