php下如何区分移动客户端和PC客户端

2013-05-06 22:03:31 +08:00
 yeshang
我想做一个网站, 使用php程序, 然后通过什么办法, 让手机移动客户 和桌面电脑客户看到不同的页面

比如v2ex.com 对于桌面客户就是 双栏 结构的布局.

而在手机浏览就变成了单栏.
3423 次点击
所在节点    问与答
6 条回复
mkeith
2013-05-06 22:29:35 +08:00
userAgent
wy315700
2013-05-06 22:35:00 +08:00
或者可以用屏幕分辨率来检测
otakustay
2013-05-06 23:35:42 +08:00
一般我们是这么区分移动客户端的(最近正好在研究):

1. 后端通过UA分析,比如iPad的UA里有iPad字样,有android字样的都是移动客户端之类的(在android电脑出现以前)
2. 前端js分析,这包括不少策略:
A. 找screen.orientation,一般有这值的是移动设备
B. 通过screen.width/height看分辨率,小于1024的基本是移动设备没跑了
C. 看devicePixelRatio的值,PC上现在为止似乎只有rMBP是超过1的

另外,仅仅要你说的这种效果的话,建议学习响应式布局,移动设备和PC的分界线正越来越模糊,你说一个可拆键盘带触摸屏的9寸超级本算啥?
robhsiao
2013-05-07 08:03:22 +08:00
可以用 Mobile_Detect (https://github.com/serbanghita/Mobile-Detect),原理如楼上的同学们所说是分析User-Agent。

不过我印象中移动的CMWAP是屏蔽了User-Agent, 如果需要比Mobile_Detect更精准确一些的判断,可能要把IP也作为一个因子来分析 :(
batfree
2013-05-07 08:47:55 +08:00
不知道Yahoo是怎么判断的。我用移动的上网卡上mail.yahoo.com,在PC上用的Firefox浏览器,,他每次都给我导向到移动页面。
yeshang
2013-05-07 09:14:01 +08:00
@otakustay 看来响应式布局应该是最好也是最容易切入的一个点

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/67955

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX