这种方法是否一致且不易产生歧义?
我将HTTP_USER_AGENT的整个内容拆分为单词,并检查:
if there is `iPhone` -> iOS
if there is `Android` -> Android
if there is `Windows` -> Windows Mobile
else -> no mobile
首先你忘记了"iPod"作为iOS
其次,这是您检测设备的唯一方法,但它根本不安全。标题可以很容易地更改,你甚至可以找到chrome或firefox插件,让你自定义标题到你想要的任何内容。
如果这只是出于舒适目的的检测:你有一部iPhone,让我们向您展示一个漂亮的Apple图像,那么没关系,改变user_agent的人知道他们在做什么。
如果它是安全性或"它必须是无懈可击的"场景,那么这根本不起作用,因为它很容易被欺骗。
如果您正在处理本机应用程序,则最好使用 GET 或 POST 变量发送平台名称,并使用 HTTPS 以避免变量被篡改。