2017-04-20 82 views
0

如果設備是移動設備或者瀏覽器不受支持,我需要知道(在.rb/.haml級別)。我不希望(或者它不會適合我的需要)在客戶端解析userAgent。在Sinatra中檢測瀏覽器

回答

2

寶石browser似乎是我確切需要的。它主要用於在Rails和我無法找到西納特拉完全正確的片段,讓我分享我的解決方案:

require "browser" 

... 

get "/" 
    browser = Browser.new request.user_agent, accept_language: request.env["HTTP_ACCEPT_LANGUAGE"] 
    break haml(:mobile, locals: { reason: "you are mobile" }) if browser.device.mobile? 
    break haml(:mobile, locals: { reason: "you are not chrome" }) if not browser.chrome? 
    ... 
    haml :index 
end 
+0

你知道,'browser'解析用戶代理嗎?我認爲這不是一種選擇,因爲這不適合您的需求? – spickermann

+1

@spickermann,它不是在客戶端解析userAgent *的選項* - 當一些html和js已經被加載時。我想在發佈內容之前識別瀏覽器。糟糕,忘記了代碼的重要線 - 更新了答案。 – Nakilon