Detecting mobile browsers in Rails 3



我希望在我的应用程序中进行一些特定于移动设备的布局,并一直在研究检测移动浏览器和提供特定于移动用户的布局的方法。

我偶然发现:http://www.arctickiwi.com/blog/mobile-enable-your-ruby-on-rails-site-for-small-screens

但对我来说,使用一组关键词似乎有点脆弱。如果关键词发生变化怎么办?有人遇到过任何宝石或插件或任何更经得起未来考验的策略吗?

最好的方法是使用一些支持的插件/gem,比如浏览器您无法使用所有浏览器的自定义user_agents来跟踪它们。例如Opera 11.50具有以下user_agent:

Opera/9.80 (Android 2.3.7; Linux; Opera Mobi/ADR-1111021303; U; en-GB) Presto/2.9.201 Version/11.50

完全无法识别

request.user_agent =~ /Mobile|webOS/ 

实际上有一个更简单的正则表达式可以使用。该方法在本Railscast中概述,允许您加载不同的JS并为移动设备定义不同的页面交互。

从本质上讲,您最终得到的功能只是检查用户代理是否包含"Mobile"或"webOS":

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

考虑在这个应用程序上放弃实际的rails应用程序,只需更改为页面设置样式的css,这样你只需要重写样式表

基本上,css可以检测页面宽度何时较小(即移动浏览器),如

<link rel="stylesheet" href="handheld.css" 
media="only screen and (max-device width:480px)"/>

您可以使用它来拥有两个不同的css handheld.css and normal.css,例如

资源

我在哪里得到的代码片段

以及引用的文章

相关内容

  • 没有找到相关文章

最新更新