android和ios调用php写的接口如何判断用户使用的是安卓还是苹果
程序员文章站
2022-05-31 11:30:13
...
如何能在不动安卓 和 苹果版本的前提下 php接口这边判断调用这个接口的是安卓还是苹果?
。。这个是判断浏览器的。。 在接口中调用 一般都是在客户端传递的参数中标识。
用fiddler截了下自己手机的数据包,居然真的带了useragent
回复讨论(解决方案)
function get_device_type(){ $agent = strtolower($_SERVER['HTTP_USER_AGENT']); $type = 'other'; if(strpos($agent, 'iphone') || strpos($agent, 'ipad')){ $type = 'ios'; } if(strpos($agent, 'android')){ $type = 'android'; } return $type;}
function get_device_type(){ $agent = strtolower($_SERVER['HTTP_USER_AGENT']); $type = 'other'; if(strpos($agent, 'iphone') || strpos($agent, 'ipad')){ $type = 'ios'; } if(strpos($agent, 'android')){ $type = 'android'; } return $type;}首先谢谢你的回答 这个好像对浏览器可以 但是如果安卓或者苹果调用我这个接口 通过上述方式应该没办法知道 是安卓或者苹果吧
你可以在接口地址上带个参数,例如安卓 device_type=1;苹果device_type=2,附带一些加密措施,防止从其它PC或设备访问时参数判断失误
让客户端每次请求的时候带个标识参数就好了。
你只能在客户端, 也就是安卓与苹果端对 用户标识区分
如
Http.setRequestProperty("User-Agent","Mozilla/5.0 Android");
function get_device_type(){ $agent = strtolower($_SERVER['HTTP_USER_AGENT']); $type = 'other'; if(strpos($agent, 'iphone') || strpos($agent, 'ipad')){ $type = 'ios'; } if(strpos($agent, 'android')){ $type = 'android'; } return $type;}首先谢谢你的回答 这个好像对浏览器可以 但是如果安卓或者苹果调用我这个接口 通过上述方式应该没办法知道 是安卓或者苹果吧
。。这个是判断浏览器的。。 在接口中调用 一般都是在客户端传递的参数中标识。
你可以在接口地址上带个参数,例如安卓 device_type=1;苹果device_type=2,附带一些加密措施,防止从其它PC或设备访问时参数判断失误
谢谢你的回答 如果在客户端传参数 就得改App 能不能再不动用客户端的情况下 知道调用接口的是安卓 或者 ios应用发出的请求不像浏览器带useragent,目前不知道有什么办法区分,我这边工作也会用到,这两天研究下
应用发出的请求不像浏览器带useragent,目前不知道有什么办法区分,我这边工作也会用到,这两天研究下
用fiddler截了下自己手机的数据包,居然真的带了useragent
不确定这个agent是开放权限给开发者自定义,还是安卓java虚拟机封装成私有的
不确定是否乱七八糟的安卓机型都能带上
截一下IOS和windows phone的看看吧
?用API??????,使用user-agent不?的。
有个Mobile Detect的PHP类,你可以研究一下
谢谢大家的热心回答