可能重复:
iPhone 4S 的用户代理字符串
我们目前需要在 iPhone 4 的 Web 应用程序中调低某些动画和效果。它们在 4s 上都可以正常工作,所以我们想根据手机型号切换效果!有什么可靠的方法可以告诉您正在使用哪种手机型号?我相信我可能能够解析用户代理字符串,但这样做并不是 100% 舒服,并且只会将其用作最后的手段!
我们希望在我们的移动网络应用程序和我们的 phonegap 应用程序中检测到这一点。
可能重复:
iPhone 4S 的用户代理字符串
我们目前需要在 iPhone 4 的 Web 应用程序中调低某些动画和效果。它们在 4s 上都可以正常工作,所以我们想根据手机型号切换效果!有什么可靠的方法可以告诉您正在使用哪种手机型号?我相信我可能能够解析用户代理字符串,但这样做并不是 100% 舒服,并且只会将其用作最后的手段!
我们希望在我们的移动网络应用程序和我们的 phonegap 应用程序中检测到这一点。
PhoneGap exposes something other than the UA string in a device
object: http://docs.phonegap.com/en/1.0.0/phonegap_device_device.md.html
The reason UA string sniffing is usually sniffed at is that it has historically been used as an unreliable method of feature-inference, and seeing as what we want in this context is an arbitrary esoteric indicator from which to infer general device performance, the use-case seems genuine — inasmuch as performance indicators have no general standard to be 'feature-detected' as such.
Having said that, I've been looking for years for a performance testing framework (without massive overhead) to determine how much flashiness I want my apps to give… Any answers that speak of this gratefully appreciated by-the-by!
您的问题似乎与此问题可能重复:
话虽如此,那里接受的答案建议:
阅读 User-Agent 标头就可以解决问题。
有一些已知的移动用户代理列表,因此您无需从头开始。当我不得不做的是建立一个已知用户代理的数据库并在检测到它们进行修订时存储未知数,然后手动找出它们是什么。在某些情况下,这最后一件事可能是矫枉过正。
如果您想在 Apache 级别执行此操作,您可以创建一个脚本,该脚本会定期生成一组检查用户代理的重写规则(或者只需一次并忘记新的用户代理,或者每月一次,只要适合您的情况),例如
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (OneMobileUserAgent|AnotherMobileUserAgent|...)
RewriteRule (.*) mobile/$1
which would move, for example, requests to http://domain/index.html to http://domain/mobile/index.html
此外,linked-StackOverflow-accepted 答案中的链接已损坏。但是,您可以关注这个(这是最新的):
http://www.enterpriseios.com/wiki/UserAgent
附加参考:什么是 iPhone 4 用户代理?