복붙노트

[RUBY-ON-RAILS] 브라우저 감지 방법 레일

RUBY-ON-RAILS

브라우저 감지 방법 레일

모두 이봐, 난 방법은 레일에 브라우저 감지 할 수있는 업계 표준이 무엇인지 궁금 해서요? 브라우저를 결정하는 데 도움과 (X) HTML의 body 요소에 클래스 나 ID를 적용 할 수있는 보석, 라이브러리 또는 샘플 코드 곳이 있습니까? 덕분에, 난 그냥이 일을 허용하는 방법이 무엇인지 모두가 사용하고 있는지 궁금하네요?

나는 우리가에서는 user.agent을 얻고 해당 문자열을 구문 분석 할 수 있다는 것을 알고,하지만 난하지 않도록 그 즉 브라우저 감지 할 수있는 허용 방법입니다 경우입니다.

또한, 여기 특징 검출을 토론하는 것을 시도하고 있지 않다, I에 유래에서 그 여러 답변을 읽었습니다, 내가 요구하고있어 모든 너희들이 한 일이다.

[최신 정보]

덕분에 GitHub의에 faunzy하는 그래서, 나는 종류의 레일에서 사용자 에이전트 확인에 대한 약간의 이해의했지만, 아직도 확인이 여기 레일 (3)에 대해 이동하지만 가장 좋은 방법이 있다면 그렇게 왔 것입니다 멀리:

def users_browser
user_agent =  request.env['HTTP_USER_AGENT'].downcase 
@users_browser ||= begin
  if user_agent.index('msie') && !user_agent.index('opera') && !user_agent.index('webtv')
                'ie'+user_agent[user_agent.index('msie')+5].chr
    elsif user_agent.index('gecko/')
        'gecko'
    elsif user_agent.index('opera')
        'opera'
    elsif user_agent.index('konqueror')
        'konqueror'
    elsif user_agent.index('ipod')
        'ipod'
    elsif user_agent.index('ipad')
        'ipad'
    elsif user_agent.index('iphone')
        'iphone'
    elsif user_agent.index('chrome/')
        'chrome'
    elsif user_agent.index('applewebkit/')
        'safari'
    elsif user_agent.index('googlebot/')
        'googlebot'
    elsif user_agent.index('msnbot')
        'msnbot'
    elsif user_agent.index('yahoo! slurp')
        'yahoobot'
    #Everything thinks it's mozilla, so this goes last
    elsif user_agent.index('mozilla/')
        'gecko'
    else
        'unknown'
    end
    end

    return @users_browser
end

해결법

  1. ==============================

    1.라이브러리 루비 라이브러리가 GitHub의에 이상있다 : https://github.com/gshutler/useragent

    라이브러리 루비 라이브러리가 GitHub의에 이상있다 : https://github.com/gshutler/useragent

    내가 직접 사용하고는 지금까지 광고 일하고있다. 사용 사례를 들어, 당신은 아마 당신의 레일 프로젝트 또는 이와 유사한에서 도우미 메서드 내에서 라이브러리를 호출 할 수 있습니다.

    즉, HTTP_USER_AGENT는 레일 도우미 메서드에 노출되면 나는 완전히 확실하지 않다 고 말했다. 경우가 노출되지 않습니다, 당신은 항상 (AbstractController에 :: 도우미 :: ClassMethods # helper_method를 사용하여) 도우미 등의 제어 방법에 노출 될 수 있습니다.

  2. ==============================

    2.브라우저 보석은 특히 레일의 브라우저 탐지를 위해 설계되었습니다.

    브라우저 보석은 특히 레일의 브라우저 탐지를 위해 설계되었습니다.

  3. ==============================

    3.[ 'HTTP_USER_AGENT'],이 클라이언트의 사용자 에이전트를 반환합니다 request.env을보십시오. 휴 버트 Łępicki에 의해 게시 빠른 도우미도 있습니다

    [ 'HTTP_USER_AGENT'],이 클라이언트의 사용자 에이전트를 반환합니다 request.env을보십시오. 휴 버트 Łępicki에 의해 게시 빠른 도우미도 있습니다

  4. from https://stackoverflow.com/questions/4707400/rails-browser-detection-methods by cc-by-sa and MIT license