【发布时间】:2017-04-20 17:16:31
【问题描述】:
我需要知道(在 .rb/.haml 级别)设备是移动设备还是不支持浏览器。我不想(或者它不能很好地满足我的需要)在客户端解析 userAgent。
【问题讨论】:
标签: ruby sinatra backwards-compatibility
我需要知道(在 .rb/.haml 级别)设备是移动设备还是不支持浏览器。我不想(或者它不能很好地满足我的需要)在客户端解析 userAgent。
【问题讨论】:
标签: ruby sinatra backwards-compatibility
Gem browser 似乎正是我所需要的。它主要用于 Rails,我找不到 Sinatra 完全正确的 sn-p,所以我分享我的解决方案:
require "browser"
...
get "/"
browser = Browser.new request.user_agent, accept_language: request.env["HTTP_ACCEPT_LANGUAGE"]
break haml(:mobile, locals: { reason: "you are mobile" }) if browser.device.mobile?
break haml(:mobile, locals: { reason: "you are not chrome" }) if not browser.chrome?
...
haml :index
end
【讨论】:
browser 也解析用户代理吗?我认为这不是一个选择,因为这不能很好地满足您的需求?
你也可以使用:
require 'sinatra'
get '/' do
request.user_agent
end
【讨论】: