Автоопределение тач телефонов

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
________
остальные в общем то можно по боку пуститьsmile

Добавлено через 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 сек.
с компа зашёл
С компа точно не промажет.
Не уверен на счет нокий сенсорных, не знаю какие у них юзер агенты, и придерживаются ли они той же схемы что и остальные аппаратыsmile
Если врать не будет, потом поделюсь конечно

12. Саня (25.02.2012 / 13:40)
зашел с нтс. норм определило.

13. ramzes (25.02.2012 / 13:44)
sanzstez (25 Февраля 2012 / 13:40)
зашел с нтс. норм определило.
спасибоsmile
не определяет: усвеб и часть опер (ну не дают они минимально необходимой информации)
и некоторое нокии, так же, не содержат в уа нужных ключей, а перечислять все их варианты (никиевские) проще забить..

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, а код можно? или это секретная технология?)
Сейчас, я только докурю и до компа дойдуsmile
З.ы. определение не полное, до полного придется еще много думать

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)
не за чтоsmile
ни кто не в курсе, симбиан 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 ) AppleWebKit/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 сек.
но если есть какие то мысли по улучшению. думаю все только рады будутsmile

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, Разве? smile
Тема спорная, я совсем иной подход вижу к алгоритму ))

34. ramzes (26.02.2012 / 00:57)
akawin (26 Февраля 2012 / 00:05)
32. ramzes, Разве? smile )
Конечно.
Ты найдешь midp и все, а это вообще все телефоны на яве, с нормальным юзерагентомsmile

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, Да вобще да, дополнить нужно... в следущий раз smile

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, тогда и ее можно добавитьsmile

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_€, потому что это надо вамsmile
Сделайте

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