首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Codeigniter使用User Agent类为手机输出不同的视图是不好的吗

Codeigniter使用User Agent类为手机输出不同的视图是不好的吗
EN

Stack Overflow用户
提问于 2015-07-31 20:14:49
回答 2查看 682关注 0票数 2

我一直在尝试处理这样一个应用程序,它的设计在移动设备上会像在桌面上一样不同。

在Codeigniter中,使用User Agent类并根据您所在的设备加载视图,但将相同的数据解析到视图,这是一种糟糕的做法吗?

示例:

代码语言:javascript
复制
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中构建应用程序是不是一种坏做法?

EN

回答 2

Stack Overflow用户

发布于 2015-07-31 21:07:47

这是一个有点复杂的问题……

如果使用CodeIgniter构建此特定功能是一个前提条件,那么这就是您能做的最好的事情。

但是,由于PHP是一种服务器端语言,它不能直接探测客户端的浏览器,而必须依赖自报告的数据,而这正是CI的用户代理库所做的。

这本身应该不是坏事,因为(例如)它允许桌面用户将自己报告为移动客户端,这可能对他们有用,但另一方面是不可靠的。

相反,您应该使用诸如JavaScript之类的客户端技术来探测访问者的浏览器,以便检测其功能。在这一点上,您是否使用CodeIgniter作为后端并不重要,因为它不是负责这个特定任务的PHP框架。

票数 0
EN

Stack Overflow用户

发布于 2015-08-01 19:38:01

例如:在桌面上显示元素和在移动设备上删除元素可以像向目标元素添加display: none一样简单。

代码语言:javascript
复制
@media (min-width:500px){/*Class name*/{/*properties*/}}
@media (max-width:499px){/*Class name*/{/*properties*/}}

这只是说,当屏幕尺寸大于500px时,就会应用某些样式,而当屏幕尺寸低于500px时,就会应用不同的属性。

也就是说,这并不是一个糟糕的做法,但也不是很理想。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31745957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档