我已经检查了有关检测网站移动设备的各种相关问题,但我的方法与我见过的任何内容都有所不同,并且想知道是否有人可以看到任何问题。
我正在做的是......
我有一个执行server.transfer()的httpmodule;在用户访问的第一个请求上的空白html页面。
在这个空白的html页面上有一些检测视口的javascript 宽度/高度和触摸能力。然后js将此信息保存到a 客户端cookie,然后重定向(通过window.location)到 最初要求的页面。
当再次点击httpmodule时,它会读取视口 并从客户端cookie中触摸屏幕详细信息。如果触摸是 可用或视口宽度小于480px然后 httpmodule将重定向(通过Response.Redirect())到移动设备 该网站的版本。
这样做有可能遇到任何绊脚石吗?
我应该注意,该网站的平板电脑版本与手机相同,这就是为什么我想在触摸可用时重定向到此版本。
答案 0 :(得分:3)
any issues with it
它的好主意一般,但我认为你还需要在第一次服务器转移之前检查这个想法。使用您的方法,您可以避免使用所有浏览器信息保留更新的数据库,我认为这听起来不错,但如果它在现实世界中顺利运行,则需要进行测试,并且还需要在第一个服务器传输之前进行更多测试。
答案 1 :(得分:2)
我可以看到两个问题:延迟和触摸事件可用性。
往返时间在移动网络上得到了极大的扩展:您正在寻找一个空页请求大约500毫秒的3G。因此,在用户看到任何内容之前,请求 - 重定向 - 重定向大约是额外延迟的一秒。我不认为你会看到闪烁 - 正如一些评论者建议的那样 - 你只会看到一秒钟没什么,这似乎不是一种积极的体验。
关于触摸:并非所有移动设备都是基于触摸的,而某些移动设备(Windows Mobile 7)没有ontouch *事件。您需要单独跟踪这些内容。
视口也很滑:如果你没有通过元标记强制视口宽度,你会发现视口测试会遗漏大量目标设备,因为它们声称是1024px。
由于支持触控的设备(iOS,Android等)都支持CSS媒体查询,这不是一个更好的方法吗?
值得一提的是看看Luke Wroblewski等人提倡的RESS(服务器端组件的重新设计)方法:http://www.lukew.com/ff/entry.asp?1392
答案 2 :(得分:0)
尝试使用基于CSS的媒体查询,并相应地对网站进行排序。 您可以动态检测屏幕大小并相应地更改css。