tutorial rails que ejemplos descargar curso caracteristicas ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-plugins

ruby-on-rails - que - ruby on rails tutorial



Cómo detectar el tipo de navegador y su versión (5)

¿Cómo puedo detectar el tipo de navegador y su versión en Rails? Quiero verificar la versión del navegador específico y si no es una versión requerida del navegador, solicito al usuario que lo actualice. Utilizo el comando especificado a continuación pero, como no sigue un patrón estándar, no puedo usarlo.

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)


Lo que haces es en realidad la forma de hacerlo. Ahora puede procesar la información del agente de usuario con una expresión regular, buscando coincidencias en Firefox, Chrome o cualquier otro navegador o versión que desee.


Prueba la gema del navegador. Muy simple y puede resolver su propósito.

Puedes encontrar la gema aquí muy fácil de usar.


NOTA: Tenga cuidado de que algunos motores de búsqueda vean esto como un tipo de intrusión Ver (AGENTE DE USUARIO HTTP DE HTTP)

if request.env[''HTTP_USER_AGENT''] =~ /[^/(]*[^/)]Chrome///

o en el caso de Firefox

if request.env[''HTTP_USER_AGENT''] =~ /[^/(]*[^/)]*[^/t]Firefox///

y mira esto aquí obtendrás todo lo que necesitas navegador Gema

browsers_detection_gem

y aquí hay un método que puede detectar todos los navegadores para que el hombre se relaje

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/'s ''+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/'s ''+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/'s ''+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/'s ''+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/'s ''+version if version.to_i < 9 end browser_compatible end


Aunque esta es una solución frontend, prefiero verificar una característica específica que se requiera, como flexbox. Puede usar algo como Modernizr , o simplemente un simple chequeo de JavaScript lo hará ( https://.com/a/27047981/179311 ).

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'' }


También hay gema useragent :

<% 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