문제

내 asp.net 프로젝트에 모바일 웹 양식을 포함시켰습니다. 내 모바일 사용자에게만 표시될 수 있거나 표시되어야 한다고 생각했지만 모든 브라우저에서도 볼 수 있다는 것을 깨달았습니다. 거기에는 문제가 없습니다. HttpBrowserCapability.IsMobileDevice=true를 사용하여 액세스를 비교하고 적절한 aspx 페이지로 전송할 수 있지만 모바일 장치에서 웹 양식에 액세스하면 IsMobileDevice = false로 식별되어 다른 페이지로 전송됩니다.

어떻게 그런 일이 가능했을까요?

모바일 장치는 Pocket PC 2003을 실행합니다.

도움이 되었습니까?

해결책

UserAgent가 손상되었거나 새 브라우저를 사용 중이기 때문에 일부는 인식되지 않습니다.오페라 모바일 9.5와 같은.이 문제를 해결하려면 이를 정의하기 위해 특별히 브라우저(*.browser) 파일을 생성해야 합니다.Google에서 전송되는 새로운 Mozilla 기반 UserAgent에 대해 이 작업을 수행해야 했습니다.

다른 팁

IMHO:의 가치 HttpContext.Current.Request.Headers("User-Agent") 실제로 장치 유형이 아니라 요청을 하는 브라우저를 나타내므로 훨씬 더 안전한 방법입니다. 본질적으로.

나는 경험을 통해 스마트폰이 제3자 브라우저를 통해 귀하의 서비스에 요청을 하면 "당신이 어떤 유형의 장치인지" 테스트하는 경우가 많다는 것을 배웠습니다(HttpCapabilitiesBase.IsMobileDevice 및/또는 HttpContext.Current.Request.Browser.IsMobileDevice) 실패할 것입니다.

불행하게도 허용된 사용자 에이전트(또는 해당 문제에 대해 허용되지 않는 사용자 에이전트)의 큰 목록이 부족하므로 페이지를 렌더링하기 전에 Mozilla, iPhone 또는 Opera에서 시작되지 않는지 확인해야 합니다. .

플레이하기 힘든 경기장입니다.
행운을 빌어요.

제 생각에는 Microsoft 브라우저 기능보다 다른 DDR을 더 잘 활용해야 할 것 같습니다.저는 http://wurfl.sourceforge.net>WURFL을 사용하고 있습니다. 이는 오픈 소스이며 아마도 더 확장되고 업데이트되었을 것입니다.다음과 같은 다른 상용 DDR도 있습니다. DeviceAtlas.

.net 라이브러리가 많이 있지만 저는 마그.워플.wurfl 기능을 사용하여 웹 모바일 페이지를 렌더링할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top