web-dev-qa-db-fra.com

Rails moyen de détecter un appareil mobile?

Existe-t-il un "moyen Rails" permettant de détecter si l'utilisateur utilise un appareil mobile? Ce que je veux dire est une méthode que je peux utiliser dans erb, quelque chose comme ceci:

<% if mobile? %>
26
Joe Morano

Vous pouvez le faire de cette façon en définissant une fonction comme ci-dessous:

def mobile_device?
  if session[:mobile_param]
    session[:mobile_param] == "1"
  else
    request.user_agent =~ /Mobile|webOS/
  end
end

Ou vous pouvez utiliser des pierres précieuses pour détecter les appareils mobiles tels que 

17
utnas

Utilisez browser gem. Vous êtes en mesure de détecter le navigateur avec l’agent utilisateur personnalisé. 

20
askl56

Je suggérerais de vérifier device_detector, qui est assez rapide et facile à déployer. Vous devez juste y passer la chaîne user_agent, ce qui peut être fait en utilisant request.user_agent pour Rails 5: 

@user_agent = request.user_agent

@client = DeviceDetector.new(@user_agent)

@client.device_type 

Remarque: les types de périphériques peuvent être l’un des types suivants: ordinateur de bureau, smartphone, tablette, console, lecteur multimédia portable, téléviseur, navigateur de voiture, appareil photo.

https://github.com/podigee/device_detector

0
Maxo

Vous pouvez également résoudre ce problème simplement/ y compris<meta name="viewport" content="width=device-width, initial-scale=1.0"> sur la balise d’en-tête application.html.erb

Tant que votre site est réactif (par exemple, en utilisant Bootstrap), ça devrait aller.

0
Chidozie Nnachor