Fala pessoal,
Achei um codigo tanto em PHP quanto em ASP para detectar se você esta em um aparelho móvel.
Segue:
ASP
<% Option Explicit Dim user_agent, mobile_browser, Regex, match, mobile_agents, mobile_ua, i, size user_agent = Request.ServerVariables("HTTP_USER_AGENT") mobile_browser = 0 Set Regex = New RegExp With Regex .Pattern = "(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|windows ce|pda|mobile|mini|palm)" .IgnoreCase = True .Global = True End With match = Regex.Test(user_agent) If match Then mobile_browser = mobile_browser+1 If InStr(Request.ServerVariables("HTTP_ACCEPT"), "application/vnd.wap.xhtml+xml") Or Not IsEmpty(Request.ServerVariables("HTTP_X_PROFILE")) Or Not IsEmpty(Request.ServerVariables("HTTP_PROFILE")) Then mobile_browser = mobile_browser+1 end If mobile_agents = Array("w3c ", "acs-", "alav", "alca", "amoi", "audi", "avan", "benq", "bird", "blac", "blaz", "brew", "cell", "cldc", "cmd-", "dang", "doco", "eric", "hipt", "inno", "ipaq", "java", "jigs", "kddi", "keji", "leno", "lg-c", "lg-d", "lg-g", "lge-", "maui", "maxo", "midp", "mits", "mmef", "mobi", "mot-", "moto", "mwbp", "nec-", "newt", "noki", "oper", "palm", "pana", "pant", "phil", "play", "port", "prox", "qwap", "sage", "sams", "sany", "sch-", "sec-", "send", "seri", "sgh-", "shar", "sie-", "siem", "smal", "smar", "sony", "sph-", "symb", "t-mo", "teli", "tim-", "tosh", "tsm-", "upg1", "upsi", "vk-v", "voda", "wap-", "wapa", "wapi", "wapp", "wapr", "webc", "winw", "winw", "xda", "xda-") size = Ubound(mobile_agents) mobile_ua = LCase(Left(user_agent, 4)) For i=0 To size If mobile_agents(i) = mobile_ua Then mobile_browser = mobile_browser+1 Exit For End If Next If mobile_browser>0 Then Response.Write("Mobile!") Else Response.Write("Not mobile!") End If %> PHP
<?php $mobile_browser = '0'; if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) { $mobile_browser++; } if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) { $mobile_browser++; } $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4)); $mobile_agents = array( 'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac', 'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno', 'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-', 'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-', 'newt','noki','oper','palm','pana','pant','phil','play','port','prox', 'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar', 'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-', 'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp', 'wapr','webc','winw','winw','xda','xda-'); if(in_array($mobile_ua,$mobile_agents)) { $mobile_browser++; } if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) { $mobile_browser++; } if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) { $mobile_browser=0; } if($mobile_browser>0) { // do something } else { // do something else } ?> Os dois código podem ser achados aqui: http://mobiforge.com/developing/story/lightweight-device-detection-php http://mobiforge.com/developing/story/lightweight-device-detection-asp
Abraço
Ola gostei muito do seu site e do que vc tem escrito sobre mobile.Eu estou tentando sozinho fazer uma versão mobile para o meu site e queria muito saber como redirecionar automaticamente como diz os códigos acima.Eu entendo muito pouco essa linguagem, como faço para adaptar esse código ao meu site?
obrigado!!
Matheus
Olá Matheus,
Qual a linguagem de programação você usa pra desenvolver seu site mesmo? Asp.NET, ASP, PHP…?
Agora em relação ao código, é você copiar e colar la e nesta linha, fazer do jeito abaixo:
ASP
If mobile_browser > 0 Then
Response.redirect “http://m.seusite.com.br”
End If
Espero ter ajudado, senão me mande um email a gente resolve por la.
Abraço,
Marcelo
Marcelo,
valeu ai pela dica.Como eu havia dito eu n sei absolutamente nada desse tipo de linguagem mas estou me esforçando!!
Eu colei o codigo na minha pagina index que é acessada pelo desktop mesmo e fiz a modificação que vc me falou, e infelismente n deu certo n sie o que pode ter dado de errado!
Marcelo se nã´for pedir d+ vc pode me da um e-mail seu pra poder conversar melhor com vc e se possivel te mandar o código do site que eu to fazendo pra vc da uma olhada!??se n for incomodo é claro!
Qualquer coisa ai o meu msn é
matheus_g_faria@hotmail.com
Valeu abraço
Marcelo,
Encontrei um bug no código asp e não consigo resolver. Segue abaixo:
O código funciona para ie, chrome, mozilla, safari. Mas eu testei usando opera 9.8 e o código interpreta como mobile e então redireiona para o site wap.
Eu verifiquei no código asp:
mobile_agents = Array(…”oper”…
O navegador no micro usando opera, retorna a mesma identificação para mobile: oper.
Como posso resolver este problema, pois os usuários opera no micro tem que ver a página normal e os opera mobile tem que ser redirecionados.
grato