Автоопределение тач телефонов
1.
Ant0ha (25.02.2012 / 12:19)
Подскажите, плз, адекватный способ определения тач телефонов.
Сори, если это уже обсуждали - подобных тем не нашел.
2.
Андрюха (25.02.2012 / 12:36)
По моему ток через янедекс определить модель,иметь список тач телефонов,ну и смотреть уже,тач или нет. Хотя мож и подругому можно
3.
Санёк (25.02.2012 / 12:45)
Тоже интересует очень этот вопрос, может кто уже делал?
4.
ramzes (25.02.2012 / 12:47)
strpos: android, iphone, (последние модели нокии), ppc
________
остальные в общем то можно по боку пустить
Добавлено через 00:30 сек.
Wapruks (25 Февраля 2012 / 12:36)
По моему ток через янедекс определить модель,иметь список тач телефонов,ну и смотреть уже,тач или нет. Хотя мож и подругому можно
очень плохо определяет, если ты о метрике.
99% модель неопределена
5.
Дмитрий (25.02.2012 / 12:48)
1.
Ant0ha, Здесь только вручную перебором, допусти йпод - сенсорный, все тел. самсунг серии gt тоже сенсоры и т.д. а яндекс дергать вовсе не зачем $_серверусерагент обычно если с тела то как то так samsung gt x xxx, сдесь можно определить быстренько производителя - самсунг, выделить модель (в примере достаточно найти серию gt) ну и в массив все т. тачевские занести и сравнить isset($array[model]) => true - тач
наверное проще нет
6.
ramzes (25.02.2012 / 12:54)
5.
akawin, не прокатит
этого мало
Opera/9.80 (Android 2.3.4; Linux; Opera Tablet/ADR-1110071847; U; ru) Presto/2.9.201 Version/11.50
7.
Богдан (25.02.2012 / 13:03)
Поэкспериментируй с разрешением экрана. Сенсорных с малым дисплеем мало. + проверка на основные системы.
8.
Санёк (25.02.2012 / 13:17)
7.
G_A_N_J_A_R, 240х320 очень даже много сенсориников, старые все вообще такие (90%)
9.
ramzes (25.02.2012 / 13:25)
http://wap.smartoff.net/info/test/
Проверьте?
Должно ловить все или почти все..
10.
Андрюха (25.02.2012 / 13:28)
test
У вас не сенсорный экран.
Добавлено через 00:33 сек.
с компа зашёл
11.
ramzes (25.02.2012 / 13:30)
Wapruks (25 Февраля 2012 / 13:28)
test
У вас не сенсорный экран.
Добавлено через 00:33 сек.
с компа зашёл
С компа точно не промажет.
Не уверен на счет нокий сенсорных, не знаю какие у них юзер агенты, и придерживаются ли они той же схемы что и остальные аппараты
Если врать не будет, потом поделюсь конечно
12.
Саня (25.02.2012 / 13:40)
зашел с нтс. норм определило.
13.
ramzes (25.02.2012 / 13:44)
sanzstez (25 Февраля 2012 / 13:40)
зашел с нтс. норм определило.
спасибо
не определяет: усвеб и часть опер (ну не дают они минимально необходимой информации)
и некоторое нокии, так же, не содержат в уа нужных ключей, а перечислять все их варианты (никиевские) проще забить..
14.
Андрюха (25.02.2012 / 13:45)
Моя нокиа утпилась в бане,поэтому не имею возможности протестить.
15.
Ant0ha (25.02.2012 / 13:46)
13.
ramzes, а код можно? или это секретная технология?)
16.
Игорь (25.02.2012 / 13:46)
HTC - полет нормальный
17.
ramzes (25.02.2012 / 13:48)
Ant0ha (25 Февраля 2012 / 13:46)
13. ramzes, а код можно? или это секретная технология?)
Сейчас, я только докурю и до компа дойду
З.ы. определение не полное, до полного придется еще много думать
18.
Андрюха (25.02.2012 / 13:49)
15. Ну вродь обещал поделиться) Бум надеятся и ждать. Мне тож надо такое
19.
ramzes (25.02.2012 / 13:49)
rezent (25 Февраля 2012 / 13:46)
HTC - полет нормальный
У хтц всегда полет нормальный;)
Спасибо
Добавлено через 06:19 сек.
<?
function is_touch($ua){
if($ua!=''){
if(stripos($ua, 'Mobile') AND stripos($ua, 'Safari')){
return true;
}else if(stripos($ua, 'Mobile') AND stipos($ua, 'WebKit')){
return true;
}else if(stripos($ua, 'iPad')){
return true;
}else if(stripos($ua, 'iPhone')){
return true;
}else if(stripos($ua, 'Android')){
return true;
}else if(stripos($ua, 'Opera Tablet')){
return true;
}else if(preg_match('#(NokiaC[3-9])|(IEMobile/[7-9])|(NokiaN[8-9])#i', $ua)){ // куча всякого разногодля нокий (вставлять сюда)
return true;
}else{
return false;
}
}else{
return false;
}
}
некоторых юзерагентов нет под рукой, надо будет дописывать wm ppc например (в идеале ppc но не уверен что больше ни у кого нет этой метки)
20.
Ant0ha (25.02.2012 / 13:58)
ок, спасибо, функцию можно даже выложить на гитхабе и дописывать в нее новые ЮА, было бы круто.
21.
ramzes (25.02.2012 / 14:01)
20.
Ant0ha, вот еще вспомнил
}else if(stripos($ua, 'Bada/')){
return true;
22.
Андрюха (25.02.2012 / 14:05)
19. Спасиб
23.
ramzes (25.02.2012 / 14:07)
не за что
ни кто не в курсе, симбиан 9.4 весь сенсорный?
и 9.3
24.
Андрюха (25.02.2012 / 14:09)
9.3 и сенсорные и не сенсорные,9.4 весь сенсорный
25.
ramzes (25.02.2012 / 14:10)
<?
function is_touch($ua){
if($ua!=''){
if(stripos($ua, 'Mobile') AND stripos($ua, 'Safari')){
return true;
}else if(stripos($ua, 'Mobile') AND stipos($ua, 'WebKit')){
return true;
}else if(stripos($ua, 'MIDP') AND stipos($ua, 'WebKit')){
// спорный момент, не уверен. это нокии имеют такой уа *
return true;
}else if(stripos($ua, 'iPad')){
return true;
}else if(stripos($ua, 'iPhone')){
return true;
}else if(stripos($ua, 'Android')){
return true;
}else if(stripos($ua, 'Bada/')){
return true;
}else if(stripos($ua, 'Opera Tablet')){
return true;
}else if(preg_match('#(NokiaC[3-9])|(IEMobile/[7-9])|(NokiaN[8-9])|(SymbianOS/9\.[4-5])#i', $ua)){ // куча всякого разногодля нокий (вставлять сюда)
return true;
}else{
return false;
}
}else{
return false;
}
}
*
Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5228/21.1.004; Profile/
MIDP-2.1 Configuration/CLDC-1.1 ) Apple
WebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.5.2 3gpp-gba
26.
Андрюха (25.02.2012 / 14:18)
Да кстати,как ВебКит стандартный браузер определяется по моему
27.
Дмитрий (25.02.2012 / 14:24)
25.
ramzes, Так здесь же из телефонов только нокия? ...
28.
ramzes (25.02.2012 / 14:34)
akawin (25 Февраля 2012 / 14:24)
25. ramzes, Так здесь же из телефонов только нокия? ...
ты о чем?
Добавлено через 01:15 сек.
Wapruks (25 Февраля 2012 / 14:18)
Да кстати,как ВебКит стандартный браузер определяется по моему
современные арбузы на телефонах, в большей части на вебкит построены, как мне кажется
29.
Дмитрий (25.02.2012 / 14:46)
28.
ramzes, Я о том что тут смартфоны, а простые телефоны? тот же самсунг на вебките в заголовках не передает имфу о браузере, а телефоны флай? и др. ...
- вот я о чем
30.
ramzes (25.02.2012 / 14:51)
akawin (25 Февраля 2012 / 14:46)
28. ramzes, Я о том что тут смартфоны, а простые телефоны? тот же самсунг на вебките в заголовках не передает имфу о браузере, а телефоны флай? и др. ...
- вот я о чем
по этому тут
}else if(stripos($ua, 'MIDP') AND stipos($ua, 'WebKit')){
других вариантов я пока не вижу, или начнет всех грести как сенсоры
Добавлено через 00:56 сек.
но если есть какие то мысли по улучшению. думаю все только рады будут
31.
Дмитрий (25.02.2012 / 20:40)
30.
ramzes, Эммм... регулярочка (самое простое) "/(samsung-)?gt-(c|i|s)[0-9]{4}(.+)(midp|netfront|openwave|applewebkit)/i"
должно сработать, если по хорошему, то нужно профайлы каждого устройства смотреть, хм, найти их на сайте производителя в xml проще проще простого, вот если бы там инфа о дисплее была цены бы не было ...
32.
ramzes (25.02.2012 / 21:58)
31.
akawin, и ты начнешь ловить телефоны без сенсора
33.
Дмитрий (26.02.2012 / 00:05)
32.
ramzes, Разве?
Тема спорная, я совсем иной подход вижу к алгоритму ))
34.
ramzes (26.02.2012 / 00:57)
akawin (26 Февраля 2012 / 00:05)
32. ramzes, Разве? )
Конечно.
Ты найдешь midp и все, а это вообще все телефоны на яве, с нормальным юзерагентом
35.
Мага (26.02.2012 / 10:05)
ramzes (25 Февраля 2012 / 13:25)
http://wap.smartoff.net/info/test/
Проверьте?
Должно ловить все или почти все..
Nokia N900 - "у вас не сенсорный экран". Впрочем, неудивительно, н900 не особо распространен)
36.
Дмитрий (26.02.2012 / 14:54)
34.
ramzes, Да вобще да, дополнить нужно... в следущий раз
37.
ramzes (26.02.2012 / 15:34)
WolfEYE (26 Февраля 2012 / 10:05)
Nokia N900 - "у вас не сенсорный экран". Впрочем, неудивительно, н900 не особо распространен)
странно.. должен был отловить
можешь еще раз попробовать и скопировать оттуда что напишет?
Добавлено через 03:21 сек.
а все, разобрался.
ты с оперы заходил? она ни чего не сообщает о твоем аппарате
38.
Мага (02.04.2012 / 01:31)
ramzes (26 Февраля 2012 / 15:34)
странно.. должен был отловить
можешь еще раз попробовать и скопировать оттуда что напишет?
Добавлено через 03:21 сек.
а все, разобрался.
ты с оперы заходил? она ни чего не сообщает о твоем аппарате
заходил с родного браузера. Только что зашел еще раз
У вас не сенсорный экран.Ваш USER AGENT:
Mozilla/5.0 (X11; U; Linux armv7l; ru-RU; rv:1.9.2.3pre) Gecko/20100723 Firefox/3.5 Maemo Browser 1.7.4.8 RX-51 N900
39.
ramzes (02.04.2012 / 01:50)
38.
WolfEYE, у тебя ни где в юзерагенте нет намека, не на производителя не на ось, не на поддерживаемые технологии
я так понимаю N900 нокия?
40.
Мага (02.04.2012 / 07:48)
Ну да)
41.
ramzes (02.04.2012 / 09:49)
Maemo это ось?
На ней только сенсоры?
42.
юЮЮфюв (02.04.2012 / 10:17)
41,
Wikipedia гласит, что на ней базируются только следующие аппараты:
Nokia 770
Nokia N800
Nokia N810
Nokia N900
Добавлено через 07:02 сек.
Хотя кто его знает... Ну по идее да, только сенсорные..
43.
Никто (02.04.2012 / 11:20)
помоему самый адекватный метод это не создавать себе геморрой постоянно дописывая телефоны в эту функцию, согласитесь это маразм, через год если не дополнять выйдет куча телефонов новых и функция будет недоделаной, используйте api сервиса определения способности телефонов яндекса
44.
ramzes (02.04.2012 / 13:04)
43.
whatthefuck, посмотрите код, там нет ни каких конкретных моделей, ни чего дописывать в принципе не надо, только ключи, если новые появятся вдруг
Добавлено через 09:01 сек.
42.
Daniil.Laptev, тогда и ее можно добавить
45.
Виталий (02.04.2012 / 13:47)
У вас не сенсорный экран.
Ваш USER AGENT:
Opera/9.80 (Windows Mobile; WCE; Opera Mobi/WMD-50430; U; en) Presto/2.4.13 Version/10.00
у меня каммуникатор (сэнсор) samsung witu i900 8gb на windows mobile
46.
An0nimous (02.04.2012 / 14:12)
45.
Виталик Альянс, сказанно же что опера на смартах не дает необходимой инфы о девайсе;)
47.
ramzes (02.04.2012 / 17:21)
45.
Виталик Альянс, к сожалению ВМ чекать неполучится, т.к. на ней как сенсорные, так и обычные смарты.
В принципе можно, но будет и некоторые несенсоры цеплять
48.
GodZiLLa (02.04.2012 / 19:34)
У меня простая идея:
Сомнительным моделям, вместо того, чтоб определять,
просто выдавать окошко выбора, типа сенсор не сенсор,
пусть пользователь сам определяет )))
А то кода на полдвига наваять можно )))
49.
ramzes (02.04.2012 / 19:54)
48.
®_GodZiIIa_€, ну это уже не ко мне
50.
GodZiLLa (02.04.2012 / 20:00)
49.
ramzes, а почему? просто в твой код вместо кучи нокий сделать всплывающее окошко, и две кнопки Да и Нет, на вопрос, типа сенсорный ли ваш телефон ))))
Добавлено через 00:46 сек.
и соответственно дальнейшее исполнение по задумке...
51.
ramzes (02.04.2012 / 21:48)
50.
®_GodZiIIa_€, потому что это надо вам
Сделайте
52.
GodZiLLa (02.04.2012 / 22:29)
да сделаю может позже.
сейчас нужно придумать, как приват в виде чата типа сделать,
то есть диалогами, на роторе...
53.
ramzes (02.04.2012 / 22:53)
<?
function is_touch($ua){
if($ua!=''){
if(stripos($ua, 'Mobile') AND stripos($ua, 'Safari')){
return true;
}else if(stripos($ua, 'Mobile') AND stripos($ua, 'WebKit')){
return true;
}else if(stripos($ua, 'MIDP') AND stripos($ua, 'WebKit')){
return true;
}else if(stripos($ua, 'iPad')){
return true;
}else if(stripos($ua, 'iPhone')){
return true;
}else if(stripos($ua, 'Android')){
return true;
}else if(stripos($ua, 'Bada/')){
return true;
}else if(stripos($ua, 'Opera Tablet')){
return true;
}else if(stripos($ua, 'Maemo')){
return true;
}else if(stripos($ua, 'Windows Phone')){
return true;
}else if(preg_match('#(NokiaC[3-9])|(IEMobile/[7-9])|(NokiaN[8-9])|(SymbianOS/9\.[4-5])#i', $ua)){ // куча всякого разного для нокий (вставлять сюда)
return true;
}else{
return false;
}
}else{
return false;
}
}
54.
GodZiLLa (02.04.2012 / 23:05)
}else{ onclick=" бла бла бла...
что то типо этого
55.
Макс (03.04.2012 / 12:10)
Определило нормально с сафари, опера не пустила
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; ru-ru) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7
56.
ramzes (03.04.2012 / 13:08)
55.
MaXiMuS, да, оперу мини я вообще на сайт не пускаю))
57.
GodZiLLa (03.04.2012 / 21:27)
Правильно, остальным тоже надо закрыть )))
58.
Maxxxx (21.04.2012 / 01:20)
Не проще ли так
<?php
define('touch_phone', '.*Mobile.*Safari.*|.*Mobile.*WebKit.*|.*MIDP.*WebKit.*|iPad|iPhone|Android|Bada\/|Opera Tablet|Maemo|Windows Phone|Nokia.*C[3-9]|IEMobile\/[7-9]|Nokia.*N[8-9]|SymbianOS\/9\.[4-5]');
function is_touch($ua){
if(preg_match('/^('.touch_phone.')/isu', $ua)){
return true;
}else{
return false;
}
}
?>
59.
Удаленный (23.07.2012 / 11:39)
http://www.developer.nokia.com/Community/Wiki/User-Agent_headers_for_Nokia_devices
http://www.zytrax.com/tech/web/mobile_ids.html может пригодится кому)
URL:
https://visavi.net/topics/29910