2017-04-20 1 views
0

기기가 모바일이거나 브라우저가 지원되지 않는 경우 (.rb/.haml 수준에서) 알아야합니다. 나는 클라이언트 측에서 userAgent를 파싱하기를 원하지 않는다.Sinatra에서 브라우저 검색

답변

2

보석 browser 정확히 내가 필요한 것 같습니다. 주로 레일즈에서 사용되며 Sinatra에 대한 정확한 스 니펫을 찾을 수 없으므로 솔루션을 공유합니다 :

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

'브라우저'도 사용자 에이전트를 구문 분석합니까? 그게 옵션이 아니라고 생각했는데, 그건 당신의 필요에 잘 맞지 않을 것이기 때문입니다. – spickermann

+1

@spickermann, 일부 HTML 및 js를 이미로드해야하는 경우 클라이언트 측 *에서 userAgent *를 구문 분석하는 옵션이 아닙니다. 콘텐츠를 제공하기 전에 브라우저를 인식하고 싶었습니다. 죄송합니다. 코드를 잊어 버렸습니다. 답변을 업데이트했습니다. – Nakilon