Ответ 1
Попробуйте использовать браузер. Очень просто и может решить вашу цель.
Вы можете найти драгоценный камень здесь очень прост в использовании.
как я могу определить тип браузера и его версию в Rails. Я хочу поставить проверку версии конкретного браузера, и если ее не требуется версия браузера, чем попросить пользователя ее обновить. Я использую указанную ниже команду, но поскольку она не соответствует стандартным шаблонам, я не могу ее использовать.
request.env['HTTP_USER_AGENT']
Chrome out put is below
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.205 Safari/534.16
Safari out put is below
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1
FireFox out put is below
Mozilla/5.0 (Windows NT 5.1; rv:2.0) Gecko/20100101 Firefox/4.0
Opera out put is below
Opera/9.80 (Windows NT 5.1; U; en) Presto/2.8.131 Version/11.10
Internet Explorer out put is below
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727)
Попробуйте использовать браузер. Очень просто и может решить вашу цель.
Вы можете найти драгоценный камень здесь очень прост в использовании.
ПРИМЕЧАНИЕ. Будьте осторожны, некоторые поисковые системы рассматривают это как тип вторжения. Смотрите (Google HTTP USER AGENT)
if request.env['HTTP_USER_AGENT'] =~ /[^\(]*[^\)]Chrome\//
или в случае firefox
if request.env['HTTP_USER_AGENT'] =~ /[^\(]*[^\)]*[^\t]Firefox\//
и проверьте это здесь, вы получите все, что вам нужно браузер Gem
и вот метод, который может обнаруживать все браузеры, такие как chill man
def browser_detection
result = request.env['HTTP_USER_AGENT']
browser_compatible = ''
if result =~ /Safari/
unless result =~ /Chrome/
version = result.split('Version/')[1].split(' ').first.split('.').first
browser_compatible = 'Application is not functional for Safari version\ '+version if version.to_i < 5
else
version = result.split('Chrome/')[1].split(' ').first.split('.').first
browser_compatible = 'Application is not functional for Chrome version\ '+version if version.to_i < 10
end
elsif result =~ /Firefox/
version = result.split('Firefox/')[1].split('.').first
browser_compatible = 'Application is not functional for Firefox version\ '+version if version.to_i < 5
elsif result =~ /Opera/
version = result.split('Version/')[1].split('.').first
browser_compatible = 'Application is not functional for Opera version\ '+version if version.to_i < 11
elsif result =~ /MSIE/
version = result.split('MSIE')[1].split(' ').first
browser_compatible = 'Application is not functional for Microsoft Internet Explorer version\ '+version if version.to_i < 9
end
browser_compatible
end
Существует также useragent gem:
<% user_agent = UserAgent.parse(request.env["HTTP_USER_AGENT"]) %>
App: <%= user_agent.application %> # Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:22.0)
Browser: <%= user_agent.browser %> # Firefox
Version: <%= user_agent.version %> # 22.0
Platform: <%= user_agent.platform %> # Macintosh
Mobile: <%= user_agent.mobile? %> # False
OS: <%= user_agent.os %> # OS X 10.8
То, что вы делаете, на самом деле способ сделать это. Теперь вы можете обрабатывать информацию о пользовательском агенте с регулярным выражением, искать совпадения в Firefox, Chrome или любом другом браузере или версии, которые вам нравятся.
Хотя это внешнее решение, я предпочитаю проверять определенную функцию, которая требуется, например flexbox. Вы можете использовать что-то вроде Modernizr или просто выполнить проверку JavaScript (fooobar.com/info/148391/...).
if(!("flexWrap" in document.documentElement.style)) {
// IE 10, Chrome 20 and Firefox 27 and anything older will hit this.
alert('your browser is out of date');
// maybe this is preferred
// window.location = '/browser-unsupported'
}