2011-08-19 8 views
16

WebForms로 작성된 데스크톱 웹 사이트의 첫 모바일 버전을 만들기 시작했습니다.. NET에서 모바일 브라우저 장치 감지

내 현재 질문은 모바일 장치/브라우저 감지와 관련이 있습니다.

기기가 모바일 기기 인 경우 b) OS에 따라 다르게 처리해야하는 경우 어떤 OS (Android/IOS/etc)가 필요합니까? c) 어떤 화면 크기 (다른 스타일 시트로드)

+0

답변 없음? 나는 같은 질문을 가지고있다. 당신은 해결책으로 무엇을 해결 했습니까? –

+1

이 질문/답변을보십시오 : http://stackoverflow.com/questions/9587111/mobile-site-detection-server-side-vs-client-side – avs099

+0

'핸드셋 탐지'모바일 탐지 라이브러리 사용 http : // /www.handsetdetection.com
다음 링크를 방문하여 '.NET 핸드셋 감지 API 키트'를 얻을 수 있습니다.
http://code.google.com/p/handset-detection-asp-net-api-kit/

답변

4

나는 많은 경우에있어서 가장 좋은 해결책이라고 생각하지 않지만 문제 영역에 대한 대안적인 통찰력을 증명할 수 있습니다.

대신 브라우저 스니핑과 유사점/단점이있는 모바일 브라우저 자체를 감지합니다.

대신 응답 형 디자인을 사용하십시오. 나는 반응이없는 디자인을 여기에 자세히 설명하지 않을 것이다. 그러나 그것이 당신을 제공 할 수있는 방법은 브라우저가 감지되는 것을 기반으로 전체 경험을 커스터마이징하는 대신 화면 해상도, CSS 기능, 자바 스크립트 사용 가능 등을 기반으로 경험을 커스터마이징하는 미묘한 방법입니다.

반응 형 디자인은 기술별로는 아니지만 사용되는 브라우저 (모바일 브라우저)에 따라 경험을 점진적으로 향상시킬 수있는 일련의 기술입니다.

어떤 대응 기술이 실제로 허용되지 않는지 (또는 적어도 손상되었는지)는 예를 들어 모바일 버전/데스크톱 버전. 각각은 일반적으로 별도의 경험을 오염시킵니다. html은 모바일 버전에서 숨길 수 있지만 백그라운드에서 계속 다운로드 될 수 있습니다. JavaScript는 모바일 브라우저에서 저해상도 이미지를 다운로드하고 와이드 스크린 모니터에서 고해상도를 다운로드하는 데 사용할 수 있습니다.

하지만 모바일 버전/데스크톱 데스크톱 버전과 완전히 다른 링크를 사용하여 사용자가 폴백으로 결정할 수 있습니다.

+0

여기에서 문법 나치는 "그 자체로" "라틴어"에 대한 라틴어입니다 http://en.wikipedia.org/wiki/Per_se –

+0

고마워, 그냥 편집하고 내 끔찍한 맞춤법 중 일부를 수정! 내가 서두를 지경에 빠뜨 렸음에 틀림 없다. –

12

useragent 문자열을 보면 브라우저 유형을 감지하는 것이 가장 간단합니다. 해당 문자열의 키워드는 브라우저 검색에 도움이됩니다. UserAgentString.com은 사용자 에이전트 문자열의 철저한 목록을 유지하고 있지만 필요한 주요 키워드는 몇 가지 키워드입니다.

예를 들어, "blackberry"라는 단어는 Blackberry 장치에서 검색 할 때만 나타납니다. iPad 및 iPhone과 유사합니다. Android 기기는 모두 사용자 에이전트 문자열에 'android'를 표시하지만 태블릿과 휴대 전화는 휴대 전화 용 키워드 인 '휴대 전화'를 포함하여 구분됩니다. 우리는 우리의 모바일 응용 프로그램에서 데스크탑, 전화 및 정제를 감지 방법은 다음과

는 다음과 같습니다

public enum DeviceType 
    { 
     Desktop, 
     Tablet, 
     Phone 
    } 

    public static DeviceType UserAgentToDeviceType(string userAgent) 
    { 
     if (userAgent.ToLowerInvariant().Contains("blackberry")) 
      return DeviceType.Phone; 

     if (userAgent.ToLowerInvariant().Contains("iphone")) 
      return DeviceType.Phone; 

     if (userAgent.ToLowerInvariant().Contains("ipad")) 
      return DeviceType.Tablet; 

     if (userAgent.ToLowerInvariant().Contains("android")) 
     { 
      if (userAgent.ToLowerInvariant().Contains("mobile")) 
       return DeviceType.Phone; 
      else 
       return DeviceType.Tablet; 
     } 

     return DeviceType.Desktop; 
    } 

당신이 jQuery Mobile 같은 것을 사용하는 경우, 사이트에 관계없이 장치 유형의 모바일 모양에 맞게 사용자 정의됩니다, 그것은 것입니다 다른 기기에서 자바 스크립트 엔진 간의 차이점을 처리합니다.

1

WURFL은 이에 대한 훌륭한 자료입니다. 필요한 값을 구성 할 수 있습니다 (모든 인수를 취할 필요 없음). 당신은 당신은 그것의 XML을 읽고 데이터베이스에 값을 넣어 사용자의 요구 3)를 사용하여 XML 리더에 따라 WURFL의 XML 2) 명단 인수를 취할 수 있습니다 자신의 솔루션 -

1)를 만들려면 나는 생각한다.

이렇게하면 자신 만의 솔루션을 가질 수 있습니다. (한 가지 문제는 나중에 WURFL에 등록하는 새 장치가 자동으로 업데이트되지 않으므로 나중에 직접 업데이트해야 함)