fix*_*ate 4 mobile ruby-on-rails
我正在编写一个rails应用程序,需要为普通的Web浏览器用户提供移动用户的不同链接.例如,如果用户在移动设备上,我想显示:
<a href="instagram://user?username=<%= photo.author %>" target="_blank" class="btn btn-info btn-block"><i class="fa fa-instagram"></i> Captured by <%= photo.author %></a>
Run Code Online (Sandbox Code Playgroud)
如果用户在浏览器上我想显示:
<a href="http://instagram.com/<%= photo.author %>" target="_blank" class="btn btn-info btn-block"><i class="fa fa-instagram"></i> Captured by <%= photo.author %></a>
Run Code Online (Sandbox Code Playgroud)
做这个的最好方式是什么?谢谢
浏览器数据以user_agent对象的形式出现:
#app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
helper_method :mobile?
private
def mobile? # has to be in here because it has access to "request"
request.user_agent =~ /\b(Android|iPhone|iPad|Windows Phone|Opera Mobi|Kindle|BackBerry|PlayBook)\b/i
end
end
Run Code Online (Sandbox Code Playgroud)
这样您就可以在视图中使用以下内容:
#app/views/controller/view.html.erb
<% if mobile? %>
... do something for mobile
<% else %>
... do something else
<% end %>
Run Code Online (Sandbox Code Playgroud)
说实话,我不明白为什么人们硬编码他们的移动界面工作.如果您正确使用CSS媒体查询,则不应该对文件有任何问题,尽管您的情况似乎确实需要服务器端条件.
| 归档时间: |
|
| 查看次数: |
1711 次 |
| 最近记录: |