用户设备、UA检测 相关
用户设备、UA检测 相关
https://github.com/jenssegers/agent
//识别移动设备
//$agent->isMobile();//手机
//$agent->isTablet();//平板
//$agent->isDesktop();//桌面端
//获取设备信息
//$agent->device();
//操作系统信息
//$agent->platform();
//浏览器信息
//$agent->browser();
// 获取浏览器版本
//$browser = $agent->browser();
//$version = $agent->version($browser);
// 获取系统版本
//$platform = $agent->platform();
//$version = $agent->version($platform);
// https://github.com/jenssegers/agent
// http://www.thinkphp.cn/code/3991.html
设备标识。。。
device_id: 869072037059739,869072037359733
user-agent: Redmi Note 5(Android/8.1.0) (com.bo3158.bohua/1.0.0) Weex/0.26.0 1080x2030
device_id: 869072037059739,869072037359733
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1
User-Agent: Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1
user-agent: Redmi Note 5(Android/8.1.0) (com.bo3158.bohua/1.0.0) Weex/0.26.0 1080x2030
参考: http://www.thinkphp.cn/code/3991.html
jenssegers/agent 的问题
本质上也是调用的是mobiledetect
$ua = 'iPhone9,1(iOS/12.4.1) Uninview(Uninview/1.0.0) Weex/0.26.0 640x1136';
$ua = 'iPhone10,3(iOS/12.1.4) Uninview(Uninview/1.0.0) Weex/0.26.0 1125x2436';
$ua = 'iPhone8,1(iOS/13.1.3) Uninview(Uninview/1.0.0) Weex/0.26.0 750x1334';
上面的ua就无法匹配出对应的系统,看了源码的正则配置如下:
'iPhone' => '\biPhone\b|\biPod\b'
改成 'iPhone'=> '\biPhone|\biPod\b'
'iOS' => '\biPhone.*Mobile|\biPod|\biPad|AppleCoreMedia',
改成 ‘iOS’=> '\biPhone|\biPod|\biPad|AppleCoreMedia'
解决办法就是继承类,改造她娘的