今天在项目中实现根据移动端和PC端的访问实现不同的页面布局,不同于自适应的css布局,需求是移动端和PC端的html标签只有一小部分不相同,可以想到的实现方案是利用thinkphp根据不同的使用不同的模板,代码如下:
//判断pc手机端网页这个不能放在入口文件,可以放在公共控制器的构造方法中
// 构造 调用该文件先执行这个方法
public function construct(){
if (\think\facade\Request::isMobile()) {
define('VIEW_PATH', DIR . '../app/index/view/mobile/');
} else {
define('VIEW_PATH', DIR__ . '../app/index/view/pc/');
}
}
这样是可以实现的,但是手机端和PC端访问的页面只有一点html标签不一样,所以想到能否使用tp服务端判断访问的终端是移动端还是PC端
$is_mobile = \think\facade\Request::isMobile();
View::assign('is_mobile', $is_mobile);
然后在前端通过tp的判断标签进行甄别从而使用不同的代码,具体实现如下:
{if condition="$is_mobile eq '0'" }
//实现PC端访问的html
{else /}
//实现移动端访问的html
{/if}
实测可行,这里的
\think\facade\Request::isMobile())
判断是否是移动端(包括ipad和各种手机)
Comments