Answers:
您可以使用UserAgent检测,也可以使用jQuery.support()。由于您正在寻找特定的功能,因此可以将两者结合起来以获得所需的功能。
UserAgent实际上可能是您最好的选择。使用.htaccess文件执行此操作,以减少您的http请求,并在连接速度慢或JavaScript性能下降的情况下,在重定向之前刷新主站点。
您可以在Wikipedia页面上看到(主要是)详尽的移动用户代理列表。如您所见,可以在正则表达式中查找制造商和版本之间的相似之处。
您的问题涉及两部分..重定向和html5兼容性。
重新导向
我正在使用以下.htaccess:
RewriteCond %{HTTP_ACCEPT} "text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie-" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android" [NC]
RewriteRule ^(.*)$ http://m.example.com/ [L,R=302]
对于php,您可以使用以下库:http : //detectmobilebrowsers.mobi/ ...但是我强烈建议您使用htaccess来处理时间和提高安全性。
您可以在此处找到一些其他示例
http://ohryan.ca/blog/2009/02/18/revisiting-mobile-redirection-using-htaccess-rewrite-rules/
浏览器功能
作为我的Android手机,带有地理位置代码的html5没问题。您可以考虑使用Modernizr Javascript库来检测访问页面的客户端浏览器的功能。
出色的 HTML5样板模板开箱即用地使用了modernizr来满足这种需求。
我的意见是:我建议对htaccess方法使用除modernizr支持的最新手机和浏览器以外的所有内容,并让Modernizr检查android和iPhone用户是否支持html5功能,并重定向“无地理位置”版本上的“其余”。
Modernizr示例:
if (Modernizr.geolocation) {
// do stuff
}else{
// propose mobile version
}
希望这可以帮助