2008-08-16 5 views
6

asp.net 프로젝트에 모바일 웹 양식을 포함 시켰습니다. 모바일 사용자에게만 표시 될 수 있다고 생각했지만 실제로 볼 수도 있습니다. 어떤 브라우저에서든 HttpBrowserCapabilities.IsMobileDevice = true를 사용하여 액세스 권한을 비교하고 적절한 aspx 페이지로 전송할 수 있기 때문에 문제가 발생하지 않지만 내 모바일 장치에서 웹 양식에 액세스하면 IsMobileDevice로 식별됩니다. = false 그리고 나를 다른 페이지로 보냅니다.모바일 장치가 비 모바일 장치로 감지되었습니다.

어떻게 그럴 수 있습니까? 사용자 에이전트가 엉망이 된 또는 새로운 브라우저를 사용하고 있기 때문에

모바일 장치, 포켓 PC 2003

답변

2

일부가 인식되지 않습니다를 실행합니다. 오페라 모바일 9.5와 같은. 이 문제를 해결하려면이를 정의하기위한 브라우저 (* .browser) 파일을 작성해야합니다. Google에서 보낸 새로운 Mozilla 기반 UserAgent를 위해이 작업을 수행해야했습니다.

4

IMHO : HttpContext.Current.Request.Headers("User-Agent")의 값은 기기의 유형이 아니라 인 기기의 유형이 아니라 요청하는 브라우저를 실제로 나타 내기 때문에 훨씬 안전합니다.

저는 스마트 폰이 타사 브라우저를 통해 서비스를 요청할 때 "어떤 유형의 장치"를 테스트하는지 더 많이 알게되었습니다 (HttpCapabilitiesBase.IsMobileDevice 및/또는 HttpContext.Current.Request.Browser.IsMobileDevice)가 실패합니다.

유감스럽게도 허용 된 사용자 에이전트 (또는 허용되지 않는 사용자 에이전트)의 목록이 부족하다면 렌더하기 전에 Mozilla, iPhone 또는 Opera로 시작하지 않아도됩니다. 페이지 ...

재생할 수있는 경기장입니다.
행운을 빈다.

1

다른 DDR을 Microsoft Browser Capabilities보다 사용해야한다고 생각합니다. http://wurfl.sourceforge.net> WURFL을 사용하고 있습니다. 오픈 소스이며 더 확장되어 업데이트되었을 수도 있습니다. DeviceAtlas과 같은 다른 상업용 DDR도 있습니다.

많은 .net 라이브러리가 있지만 Marg.Wurfl을 사용하고 있습니다. wurfl 기능을 사용하여 웹 모바일 페이지를 렌더링 할 수 있습니다.

관련 문제