长期以来我们都是做响应式开发,这种开发更方便快捷,效果更好。
但是今天 帮一个客户改他以前的一个网站,是那咱PC端和手机端独立分开的。
做好之后,在测试的时候发现,安卓和苹果手机都正常可以打开,但是用华为鸿蒙的时候,手机打开显示的 PC端效果。
打开:core/function/handle.php
找到判断手机端的函数:
// 是否为移动设备 function is_mobile() { $os = get_user_os(); if ($os == 'Android' || $os == 'iPhone' || $os == 'Windows Phone' || $os == 'iPad') { return true; } }
很明显,原来的代码只针对了安卓,苹果,WIN PHONE 和IPAD, 对其他系统没有判断。
现在我们加上鸿蒙系统的判断。
// 是否为移动设备 function is_mobile() { $os = get_user_os(); $ua = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : ''; // 1. 已知移动系统和浏览器判断 if ( strpos($os, 'Android') !== false || strpos($os, 'iPhone') !== false || strpos($os, 'Windows Phone') !== false || strpos($os, 'iPad') !== false || strpos($os, 'harmonyos') !== false || // 华为鸿蒙 strpos($ua, 'huaweibrowser') !== false || // 华为浏览器 strpos($ua, 'hmscore') !== false || // 华为服务核心 strpos($ua, 'honor') !== false // 荣耀设备 ) { return true; } // 2. 微信/QQ 内置浏览器通用移动判断 $mobile_agents = ['iphone', 'ipod', 'ipad', 'android', 'blackberry', 'windows phone', 'mobile', 'micromessenger']; foreach ($mobile_agents as $agent) { if (strpos($ua, $agent) !== false) { return true; } } return false; }
上一篇:完美版后台增加多个编辑器功能,标题,副标题,缩图,文字内容,id序列号,并使用标签调用。
下一篇:没有了!