Home  >  Article  >  Backend Development  >  android和ios调用php写的接口如何判断用户使用的是安卓还是苹果

android和ios调用php写的接口如何判断用户使用的是安卓还是苹果

WBOY
WBOYOriginal
2016-06-23 13:43:101128browse

如何能在不动安卓 和 苹果版本的前提下 php接口这边判断调用这个接口的是安卓还是苹果?


回复讨论(解决方案)

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类,你可以研究一下

谢谢大家的热心回答

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn