
長(zhǎng)期以來(lái)我們都是做響應(yīng)式開(kāi)發(fā),這種開(kāi)發(fā)更方便快捷,效果更好。
但是今天 幫一個(gè)客戶(hù)改他以前的一個(gè)網(wǎng)站,是那咱PC端和手機(jī)端獨(dú)立分開(kāi)的。
做好之后,在測(cè)試的時(shí)候發(fā)現(xiàn),安卓和蘋(píng)果手機(jī)都正??梢源蜷_(kāi),但是用華為鴻蒙的時(shí)候,手機(jī)打開(kāi)顯示的 PC端效果。
打開(kāi):core/function/handle.php
找到判斷手機(jī)端的函數(shù):
// 是否為移動(dòng)設(shè)備
function is_mobile()
{
$os = get_user_os();
if ($os == 'Android' || $os == 'iPhone' || $os == 'Windows Phone' || $os == 'iPad') {
return true;
}
}很明顯,原來(lái)的代碼只針對(duì)了安卓,蘋(píng)果,WIN PHONE 和IPAD, 對(duì)其他系統(tǒng)沒(méi)有判斷。
現(xiàn)在我們加上鴻蒙系統(tǒng)的判斷。
// 是否為移動(dòng)設(shè)備
function is_mobile()
{
$os = get_user_os();
$ua = isset($_SERVER['HTTP_USER_AGENT']) ? strtolower($_SERVER['HTTP_USER_AGENT']) : '';
// 1. 已知移動(dòng)系統(tǒng)和瀏覽器判斷
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 || // 華為服務(wù)核心
strpos($ua, 'honor') !== false // 榮耀設(shè)備
) {
return true;
}
// 2. 微信/QQ 內(nèi)置瀏覽器通用移動(dòng)判斷
$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;
}有關(guān)我們服務(wù)的更多信息,請(qǐng)聯(lián)系項(xiàng)目經(jīng)理
15899750475 楊先生