前几天,天地团第二阶段完成,其中加了屏幕自适应,这样手机访问时也能显示比较友好的页面了,但是当点入某个团购时,调用的是dianping的网页,那个网页还仍旧是电脑版,手机上的效果不是很理想,值得庆幸的是dianping的api的返回json数据里已经包含了一个叫deal_h5_url的东西,这个东西正好是该团购为非电脑设备做的html5页面。
于是加上一个判定是否访问来自手机端的function,立马解决问题,非电脑访问时自动跳转到h5_url。
function is_mobile(){ $mobile_browser = '0'; if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|android|ios)/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-','Googlebot-Mobile'); 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; } //print($_SERVER['HTTP_USER_AGENT']); if($mobile_browser>0) { return true; }else { return false; } }
具体功效可以用电脑和手机分别访问http://tuan.tiandiyoyo.com,然后点任何一个团购内容。
文章评分3次,平均分5.0:★★★★★
这个对搞个手机端的很好。
是的,手机端的webapp显示判定必须的。
不是很了解~小白一枚
你这玩意儿越整越复杂的说
还好啊,用的时候才发现手机访问跳转的电脑版板式。