Aplicación Simple Rails, en su mayoría andamios. Quiero detectar si el usuario está usando Android o iPhone para acceder a mi aplicación. ¿Cuál es la forma más fácil de hacer eso?¿Cuál es la forma más fácil de detectar el sistema operativo del usuario en Rails 3?
11
A
Respuesta
30
if request.env['HTTP_USER_AGENT'].downcase.match(/android|iphone/)
puts "yup, its mobile"
end
0
def getBrowser(bt)
rs=false
ua=request.env['HTTP_USER_AGENT'].downcase
isOpera = ua.index('opera') ? true : false
isSafari = (ua =~ /webkit|khtml/) ? true : false
isSafari3 = (ua.index('webkit/5') ? true : false
isGecko = (!isSafari and ua.index('gecko')) ? true : false
isGecko3 = (!isSafari and ua.index('rv:1.9')) ? true : false
isIE = (!isOpera and ua.index('msie')) ? true : false
isIE7 = (!isOpera and ua.index('msie 7')) ? true : false
case bt
when 0 #isKonqueror
if ua.index('konqueror') then rs=true end
when 1 #isOpera
rs=isOpera
when 2 #isSafari
rs=isSafari
when 3 #isSafari2
rs=isSafari && !isSafari3
when 4 #isSafari3
rs=isSafari3
when 5 #isIE
rs=isIE
when 6 #isIE6
rs=isIE && !isIE7
when 7 #isIE7
rs=isIE7
when 8 #isGecko
rs=isGecko
when 9 #isGecko2
rs=isGecko && !isGecko3
when 10 #isGecko3
rs=isGecko3
when 11 #isWindows
if ua.index('windows') or ua.index('win32') then rs=true end
when 12 #isMac
if ua.index('macintosh') or ua.index('mac os x') then rs=true
end
when 13 #isAir
if ua.index('adobeair') then rs=true end
when 14 #isLinux
if ua.index('linux') then rs=true end
when 15 #isSecure
s = request.env['SERVER_PROTOCOL'].downcase
if s.index('https') then rs=true end
end
rs
end
http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/8fa57719fd9316e1
9
Sé que esta pregunta es viejo, pero en caso de que esto ayude a alguien más, utilizo este método en application_controller.rb
para ajustar automáticamente el formato de :mobile
:
before_filter :detect_mobile
protected
def detect_mobile
request.format = :mobile if mobile?
end
def mobile?
request.user_agent =~ /iPhone|iPad|Android/i
end
El método mobile?
está separado de modo que también puede usarlo en sus propios controladores si necesita hacer algún tipo de logi condicional c para navegadores móviles.
0
la gema user_agent es útil para dispositivos móviles y de escritorio ..., y la versión del navegador. pero no hace nada por OS https://github.com/josh/useragent
Cuestiones relacionadas
- 1. Detectar el sistema operativo
- 2. ¿Cuál es la forma más fácil de obtener el nombre completo de un usuario en un sistema Linux/POSIX?
- 3. ¿Cuál es el sistema operativo bare-bone más escaso disponible?
- 4. Detectar la versión exacta del sistema operativo desde el navegador
- 5. ¿Cómo detectar el sistema operativo en ejecución?
- 6. Detectar sistema operativo en Clojure
- 7. ¿Cuál es la forma más fácil de animar una línea?
- 8. Forma más rápida de detectar el país del usuario
- 9. ¿Cómo detectar el idioma predeterminado del sistema operativo en python?
- 10. ¿Cómo detectar la codificación del sistema operativo en php?
- 11. C#: ¿cuál es la forma más fácil de restar tiempo?
- 12. ¿Cómo puedo detectar el sistema operativo en Perl?
- 13. jQuery - detectando el sistema operativo y la versión del sistema operativo
- 14. ¿Cuál es la forma más precisa de determinar la geolocalización del usuario en el navegador?
- 15. ¿Cuál es la forma más fácil de detectar si se ha cambiado al menos un campo en un formulario HTML?
- 16. ¿Cuál es la mejor forma de detectar la inactividad del usuario en una aplicación Silverlight?
- 17. Detectar el sistema operativo de la extensión de Firefox
- 18. En Java, ¿cuál es la forma más rápida de obtener la hora del sistema?
- 19. ¿Cuál es la forma más fácil de usar el comando HEAD de HTTP en PHP?
- 20. ¿Cuál es la forma más fácil de convertir la lista con str en list con int?
- 21. Sistema operativo del encabezado HTTP del agente de usuario
- 22. ¿Cuál es la forma más fácil de descomponer archivos XAML grandes en mi aplicación?
- 23. ¿Cuál es la forma más fácil de imprimir texto en pantalla en OpenGL?
- 24. ¿Cuál es la forma más fácil de llenar los vacíos en una lista de números?
- 25. ¿Cuál es la forma más fácil de manejar el evento SelectedItem con MVVM?
- 26. ¿Cuál es la mejor forma de detectar la configuración regional de un navegador en 2012?
- 27. ¿Cuál es la forma más fácil de convertir el marcado de Wiki a HTML?
- 28. C# - Detecta la hora de la última interacción del usuario con el sistema operativo
- 29. ¿Cuál es la forma más fácil de leer un archivo DBF de FoxPro desde Python?
- 30. ¿Cuál es la forma más fácil de usar el código fuente C en una aplicación Java?
Uso/android | iphone | ipod/i en mi expresión regular para capturar el iPod Touch. También le permite soltar el downcase (no distingue entre mayúsculas y minúsculas). – Callmeed
¡Sorprendentemente respondida! lol – Hamdan