7

我为网站创建了一个移动网页,但我想知道重定向的最佳方法是什么。我是根据屏幕分辨率还是用户代理重定向它们?

我会假设屏幕分辨率看起来像这样:

if (screen.width <= 1024) window.location.replace("http://www.site/mobile/")
else window.location.replace("http://www.site/");

使用 PHP,脚本看起来像这样:

$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('/android/i',substr($useragent,0,4)))
header('Location: http://www,site/mobile/');

一种方法优于另一种方法吗?如果有,有什么好处?

4

2 回答 2

6

用户代理。

在当今视网膜显示时代和 Android 设备可以是您能想到的任何屏幕分辨率的事实中,屏幕分辨率和平台之间的相关性越来越小。事实上,有许多移动设备(nexus 7、nexus 10、ipad 3+)的屏幕分辨率与台式电脑相同或更高。分辨率根本不够描述。

另一方面,用户代理旨在告诉您发出请求的原因。毫无疑问,您会知道它是 Android 或 iOS 设备。此外,在 Android 上,我认为平板电脑不应该在其 Android 用户代理中包含字符串“mobile”,以便更好地定位。同样,iPad 和 iPhone 都有自己的一组用户代理字符串,您可以考虑这些字符串。

于 2012-12-03T21:04:03.587 回答
0

您需要考虑为什么要制作移动网站。它是否增加了功能(触摸)或消除了多余的重量(3G)简化了小屏幕上的导航?如果您为触摸设备制作了它,请检测触摸的可用性。如果您构建它以允许轻松访问小屏幕,则可能会选择屏幕分辨率(我的 1200x720 的 SGS3 会看到完整的分辨率,这对我来说没问题)。通过用户代理切换而不考虑太多是一个坏主意(如果 UA 中的“移动”是好的切换,但并非所有人都支持它)。如果用户代理包含 ios,你会去一个小屏幕优化网站吗?现在你不会,但你可以在几年前,在 iPad 之前做到这一点。你会用支持触摸的 Windows mini 电脑做什么?考虑功能,而不是设备,除非您想在每台新设备上更新所有站点。

写下您的移动网站的要求(触摸?)以及它添加到普通网站的内容(更好地处理小屏幕?),并测试这些。并让他们选择。

请记住,如果您有无限制的数据计划或 wifi 和大屏幕设备,您会发现移动站点的完整站点版本完全令人讨厌,而允许触摸导航和增强功能且扩展性良好的站点在任何屏幕尺寸上导航都是一种乐趣。

无论如何,我可以建议,当/如果您进行重定向时,请尝试访问其他站点上的同一页面,而不是主页。所以如果你在

index.php?language=en&page=about__us

尝试重定向到

mobile?language=en&page=about__us

为了更好的用户体验。不要假设访问者从主页访问您的网站。

于 2012-12-03T22:30:23.300 回答