大家好,我想知道在Rails中进行浏览器检测的行业标准方法是什么?是否有一些gem、库或示例代码可以帮助确定浏览器,并将类或id应用于(X)HTML的body元素?谢谢,我只是想知道每个人都用什么,有没有被接受的方法?
我知道我们可以获得user.agent并解析该字符串,但我不确定这是否是一种可接受的浏览器检测方式。
此外,我不想在这里讨论特征检测,我在StackOverflow上读到了很多关于这一问题的答案,我想知道的是你们都做了些什么。
更新
因此,多亏了GitHub上的faunzy,我对在Rails中检查用户代理有了一些了解,但我仍然不确定这是否是在Rails 3中检查用户代理的最佳方式。
def users_browser
user_agent = request.env['HTTP_USER_AGENT'].downcase
@users_browser ||= begin
if user_agent.index('msie') && !user_agent.index('opera') && !user_agent.index('webtv')
'ie'+user_agent[user_agent.index('msie')+5].chr
elsif user_agent.index('gecko/')
'gecko'
elsif user_agent.index('opera')
'opera'
elsif user_agent.index('konqueror')
'konqueror'
elsif user_agent.index('ipod')
'ipod'
elsif user_agent.index('ipad')
'ipad'
elsif user_agent.index('iphone')
'iphone'
elsif user_agent.index('chrome/')
'chrome'
elsif user_agent.index('applewebkit/')
'safari'
elsif user_agent.index('googlebot/')
'googlebot'
elsif user_agent.index('msnbot')
'msnbot'
elsif user_agent.index('yahoo! slurp')
'yahoobot'
#Everything thinks it's mozilla, so this goes last
elsif user_agent.index('mozilla/')
'gecko'
else
'unknown'
end
end
return @users_browser
end
发布于 2011-01-17 05:20:15
在GitHub上有一个库ruby库:https://github.com/gshutler/useragent
我自己也在使用它,到目前为止,它的效果和广告宣传的一样好。对于您的用例,您可能会从Rails项目或类似项目的helper方法中调用库。
也就是说,我不能完全确定HTTP_USER_AGENT
是否向Rails助手方法公开。如果没有公开控制器方法,您可以始终将控制器方法作为帮助器公开(通过使用AbstractController::Helpers::ClassMethods#helper_method
)。
发布于 2011-12-11 05:04:03
browser gem是专门为Rails中的浏览器检测设计的。
发布于 2011-01-17 03:13:43
尝试request.env['HTTP_USER_AGENT']
,这将返回您的客户端的用户代理。还有一个由Hubert Łępicki发布的快速助手
https://stackoverflow.com/questions/4707400
复制相似问题