>  기사  >  백엔드 개발  >  android和ios调用php写的接口如何判断用户使用的是安卓还是苹果

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

WBOY
WBOY원래의
2016-06-23 13:43:101130검색

如何能在不动安卓 和 苹果版本的前提下 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类,你可以研究一下

谢谢大家的热心回答

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.