我正试图在平板电脑和移动设备(如Android手机和耳机)的一个视图中有条件地渲染/隐藏一些HTML。平板电脑,iPhone,iPad等。到目前为止,我有这样的设置:
def mobile_agent?
request.user_agent =~ /Mobile|webOS/
end
这似乎运作良好,但目前它只支持移动设备,而不支持平板电脑。我知道mobile_fu将移动设备和平板电脑归为移动设备类别,但它也会更改我不想要的请求格式。我的Web应用程序正在使用响应式主题,因此视图可以在任何设备下工作,但嵌入式Unity网络播放器除外,我希望将其隐藏在单个视图中。
有什么方法可以扩展上述方法,包括平板电脑和移动设备?
答案 0 :(得分:7)
我用这个
def mobile_agent?
request.env["HTTP_USER_AGENT"] && request.env["HTTP_USER_AGENT"][/(iPhone|iPad|iPod|BlackBerry|Android)/]
end
答案 1 :(得分:1)
试试这个:https://github.com/neighborland/mobu
Mobu提供了一个名为DetectMobile的Rails控制器问题。 Mobu执行服务器端用户代理检测,将请求分类为移动设备,平板电脑或默认设置。
Mobu会根据请求类型修改您的rails视图路径。它不需要自定义MIME类型或单独的子域。