我一直在尝试处理这样一个应用程序,它的设计在移动设备上会像在桌面上一样不同。
在Codeigniter中,使用User Agent类并根据您所在的设备加载视图,但将相同的数据解析到视图,这是一种糟糕的做法吗?
示例:
if ($this->agent->is_mobile() && $this->input->get('signin') != 'true') {
$this->data['meta_title'] = $this->data['meta_title'].' | Splash Page';
$this->load->view('path/to/view/mobile/splash', $this->data);
} else {
$this->data['meta_title'] = $this->data['meta_title'].' | Login';
$this->load->view('path/to/view/login', $this->data);
}这种用法的一个例子可能不仅是设计上的不同,还可能是如果你想转到一个首页或其他什么地方。
以这种方式在Codeigniter中构建应用程序是不是一种坏做法?
发布于 2015-07-31 21:07:47
这是一个有点复杂的问题……
如果使用CodeIgniter构建此特定功能是一个前提条件,那么这就是您能做的最好的事情。
但是,由于PHP是一种服务器端语言,它不能直接探测客户端的浏览器,而必须依赖自报告的数据,而这正是CI的用户代理库所做的。
这本身应该不是坏事,因为(例如)它允许桌面用户将自己报告为移动客户端,这可能对他们有用,但另一方面是不可靠的。
相反,您应该使用诸如JavaScript之类的客户端技术来探测访问者的浏览器,以便检测其功能。在这一点上,您是否使用CodeIgniter作为后端并不重要,因为它不是负责这个特定任务的PHP框架。
发布于 2015-08-01 19:38:01
例如:在桌面上显示元素和在移动设备上删除元素可以像向目标元素添加display: none一样简单。
@media (min-width:500px){/*Class name*/{/*properties*/}}
@media (max-width:499px){/*Class name*/{/*properties*/}}这只是说,当屏幕尺寸大于500px时,就会应用某些样式,而当屏幕尺寸低于500px时,就会应用不同的属性。
也就是说,这并不是一个糟糕的做法,但也不是很理想。
https://stackoverflow.com/questions/31745957
复制相似问题