8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Rails 检测移动设备的方式?

René Vogt 2月前

91 0

是否有“rails 方法”来检测用户是否正在使用移动设备?我的意思是我可以在 erb 中使用的方法,如下所示:<% if mobile? %>

是否有“rails 方法”来检测用户是否正在使用移动设备?我的意思是我可以在 erb 中使用的方法,如下所示:

<% if mobile? %>
帖子版权声明 1、本帖标题:Rails 检测移动设备的方式?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由René Vogt在本站《ruby》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您可以通过定义如下所示的函数来实现这一点:

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

    或者你可以使用 gem 来检测移动设备

    • https://github.com/tscolari/mobylette
    • https://github.com/shenoudab/active_device
  • 您能否将答案更新为您的答案和下面的答案,因为浏览器 gem 更常用,如 ruby​​-toolbox.com/projects/browser 中所示

  • 代理嗅探是一种非常不完善的方法,无论你选择哪种嗅探方式,随着时间的推移,它的准确性都会降低

  • 使用 browser gem。您可以通过自定义 user_agent 检测浏览器。

  • 您知道 Google Chrome 的移动浏览器模拟器是否可以使用该 gem 检测 browser.mobile 吗?

  • 浏览器很好,但需要 > ruby​​ 2。如果你被困在 1.9.3(像我一样)请查看 github.com/tscolari/mobylette

  • 浏览器似乎在 2020 年仍然得到维护,并且随着时间的推移,其使用量只会增加。

  • application_helper.rb

    def device
      agent = request.user_agent
      return "tablet" if agent =~ /(tablet|ipad)|(android(?!.*mobile))/i
      return "mobile" if agent =~ /Mobile/
      return "desktop"
    end
    

    然后你可以在你的视图中使用它:

    <% if device == "mobile" %>
      Show something for mobile users.
    <% end %>
    
  • 我建议你看看 device_detector,它部署起来非常快而且容易。你只需要将 user_agent 字符串传递给它,这可以使用 Rails 5 的 request.user_agent 来完成:

    @user_agent = request.user_agent
    
    @client = DeviceDetector.new(@user_agent)
    
    @client.device_type 
    

    注意:设备类型可以是以下之一:台式机、智能手机、平板电脑、控制台、便携式媒体播放器、电视、车载浏览器、相机

    https://github.com/podigee/device_detector

  • 您也可以通过简单地 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 标题标签 application.html.erb 添加以下内容

    只要您的网站响应迅速(例如使用 Bootstrap),就没问题。

  • 这个问题旨在检查用户代理是否是移动设备。您的答案旨在实现响应行为,这与问题意图截然不同。

返回
作者最近主题: