当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判断删除即可。