Согласно этому сообщению на форумах сообщества поддержки Blackberry , поддержка AJAX для телефонов BlackBerry была выпущена с версией 4.6
Согласно этому списку , строки BlackBerry UA имеютвсегда содержал слово BlackBerry, обычно содержал номер модели телефона и всегда содержал номер версии:
Mozilla/5.0 (BlackBerry; U; BlackBerry 9860; en-GB) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.296 Mobile Safari/534.11+
Mozilla/5.0 (BlackBerry; U; BlackBerry 9300; fr) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.570 Mobile Safari/534.8+
Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.600 Mobile Safari/534.8+
Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.246 Mobile Safari/534.1+
Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, Like Gecko) Version/6.0.0.141 Mobile Safari/534.1+
Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/530.17 (KHTML, like Gecko) Version/6.0.0.62 Mobile Safari/530.17
BlackBerry9650/5.0.0.732 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/105
BlackBerry9700/5.0.0.351 Profile/MIDP-2.1 Configuration/CLDC-1.1 VendorID/123
BlackBerry9630/4.7.1.40 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/105
BlackBerry9000/4.6.0.167 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102
BlackBerry8330/4.3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/105
BlackBerry8830/4.2.2 Profile/MIDP-2.0 Configuration/CLOC-1.1 VendorID/105
BlackBerry8820/4.2.2 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/102
BlackBerry8703e/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/105
BlackBerry8320/4.5.0.188 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/100
BlackBerry8330/4.3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/106
BlackBerry8320/4.3.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
BlackBerry8110/4.3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/118
BlackBerry8130/4.5.0.89 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/106
BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103
BlackBerry7130e/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/104
BlackBerry7250/4.0.0 Profile/MIDP-2.0 Configuration/CLDC-1.1
BlackBerry/3.6.0
BlackBerry7230/3.7.0
BlackBerry7230/3.7.1
BlackBerry7730/3.7.0
BlackBerry7730/3.7.1 UP.Link/5.1.2.5
номер версии указывается либо после слова BlackBerry
, возможно, номер модели состоит из цифри буквы, затем косая черта (/
) или сразу после слова BlackBerry
, но сразу после строки Version/
Использование этого выражения:
BlackBerry(\w*/|.*?Version/)(((?:[0-3]|4\.[0-5])\.[.\d+]+)|((?:4\.[6-9]|1?[5-9])[.\d+]+)|([\w.]+))?
В синтаксическом анализаторе регулярных выражений типа find (например, функции PHP preg_match()
, .Net Regex.Match()
или Java matcher.find()
) это выражение позволит различать номер версии от 0.0.X
до 4.5.X
и номер версииот 4.6.X
до X.X.X
, где X
представляет любое число, ранее не сопоставленное.
Что это сейчас?Извините ... другими словами, использование этого регулярного выражения в строке пользовательского агента должно позволить вам определить, является ли это браузер BlackBerry или нет И указывает ли номер версии на поддержку AJAX (псевдокод):
regex = "BlackBerry(\w*/|.*?Version/)(((?:[0-3]|4\.[0-5])\.[.\d+]+)|((?:4\.[6-9]|1?[5-9])[.\d+]+)|([\w.]+))?";
result = regex.find(UserAgentString);
if (result.matchFound)
{
actualVersion = result.matchGroup(2);
if (result.matchGroup(3) != "")
{
print("Version " + actualVersion + " does not support AJAX");
}
else if (result.matchGroup(4) != "")
{
print("Version " + actualVersion + " supports AJAX!");
}
else if (result.matchGroup(5) != "")
{
print("Unknown whether Version " + actualVersion + " supports AJAX!?!?");
}
}
print("Not A BlackBerry Browser");
Сводка: Группа соответствия № 1 (может быть сделана необязательной) соответствует части между BlackBerry
и любым соответствующим номером версии.Группа № 2 соответствует номеру версии.Группа № 3 содержит номер версии, если он от 0.0.X
до 4.5.X
.Группа № 4 содержит номер версии, если он 4.6.X
или выше, если он состоит только из цифр и десятичных знаков.Если версия, по-видимому, не соответствует этому соглашению, возможно, если есть также буквы или подчеркивания, она будет включена в группу № 5.
Я думаю, что это все, что вам нужно (после перевода на любой языкты используешь).При необходимости выражение должно поддерживаться .Net, Java, PHP или даже JavaScript.