新闻中心 网络推广 网站建设 优化推广 首页>新闻>网站建设

网站添加华为鸿蒙手机UA(User-Agent)判断

时间:2025-10-17   访问量:0

长期以来我们都是做响应式开发,这种开发更方便快捷,效果更好。

但是今天 帮一个客户改他以前的一个网站,是那咱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;
}
服务咨询
1对1咨询,专业客服为您解疑答惑
联系销售
15899750475
在线咨询
联系在线客服,为您解答所有的疑问
ARE YOU INTERESTED IN ?
感兴趣吗?

有关我们服务的更多信息,请联系项目经理

15899750475 杨先生