pbootcms关于对访问终端的判断。
时间:2019-09-16 来源:本站
当PB后台开启了独立手机端后,也就意味着你做的不是响应式前端。
那么在判断终端访问上,PB是怎样一个逻辑呢。通过查询关键词看到。
// 手机自适应主题
if ($this->config('open_wap')) {
if ($this->config('wap_domain') && $this->config('wap_domain') == get_http_host()) {
$this->setTheme(get_theme() . '/wap'); // 已绑域名并且一致则自动手机版本
} elseif (is_mobile() && $this->config('wap_domain') && $this->config('wap_domain') != get_http_host()) {
if (is_https()) {
$pre = 'https://';
} else {
$pre = 'http://';
}
header('Location:' . $pre . $this->config('wap_domain') . URL); // 手机访问并且绑定了域名,但是访问域名不一致则跳转
} elseif (is_mobile()) {
// 其他情况手机访问则自动手机版本
$this->setTheme(get_theme() . '/wap');
} else {
// 其他情况,电脑版本
$this->setTheme(get_theme());
}
} else {
// 未开启手机,则一律电脑版本
$this->setTheme(get_theme());
}
当为手机端时,自动识别为手机端模板文件。
可是在实际测试过程中发现,使用IPAD时也会自动跳转到手机端模板。但是对于一些特殊客户,比如说需要做IPAD页面的客户来说,就不行了。
于是再继续搜索关系词找到。
// 是否为移动设备
function is_mobile()
{
$os = get_user_os();
if ($os == 'Android' || $os == 'iPhone' || $os == 'Windows Phone' || $os == 'iPad') {
return true;
}
}
由此,我们看出,判断移动设备的时候是把IPAD加在内了。如果需要单独开发IPAD,可以做成PC的响应,而在此将IPAD判断删除即可。