2

我正在尝试在我的平板电脑和移动设备(如 android 手机和平板电脑、iPhone、iPad 等)的一个视图中有条件地渲染/隐藏一些 html。到目前为止,我有这个设置:

def mobile_agent?
  request.user_agent =~ /Mobile|webOS/
end

这似乎工作得很好,但目前它只支持移动设备而不是平板电脑。我知道mobile_fu将移动设备和平板电脑都归为移动设备类别,但它也会更改我不想要的请求格式。我的 Web 应用程序正在使用响应式主题,因此视图可以在任何设备下工作,但我希望隐藏在单个视图中的嵌入式 Unity Web 播放器除外。

有什么办法可以将上述方法扩展到包括平板电脑和移动设备?

4

2 回答 2

7

我用这个

def mobile_agent?
  request.env["HTTP_USER_AGENT"] && request.env["HTTP_USER_AGENT"][/(iPhone|iPad|iPod|BlackBerry|Android)/]
end
于 2012-11-27T18:07:30.197 回答
1

试试这个:https ://github.com/neighborland/mobu

Mobu 提供了一个名为 DetectMobile 的 Rails 控制器关注点。Mobu 进行服务器端用户代理检测以将请求分类为移动设备、平板电脑或默认请求。

Mobu 根据请求类型修改你的 Rails 视图路径。它不需要自定义 MIME 类型或单独的子域。

于 2013-10-09T21:10:20.847 回答