나는 51Degrees.mobi에서 일합니다. 장치가 터치 스크린인지 감지 할 수 있습니다. Request.Browser["IsTouchScreen"]
그러나 MVC 내에서 우아하게 사용하는 것은 좀 더 복잡합니다. MobileCapableViewEngine의 소스보고에서 그것은 당신이 FindView 방법을 모바일 엔진을 복사하고 변경하여 새로운 엔진을 만들 수 있습니다 것 같아 :
public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName,
string masterName, bool useCache)
{
string overrideViewName = controllerContext.HttpContext.Request.Browser["IsTouchScreen"] == "True"
? viewName + ".Touch"
: viewName;
ViewEngineResult result = NewFindView(controllerContext, overrideViewName, masterName, useCache);
// If we're looking for a Touch view and couldn't find it try again without modifying the viewname
if (overrideViewName.Contains(".Touch") && (result == null || result.View == null))
{
result = NewFindView(controllerContext, viewName, masterName, useCache);
}
return result;
}
이 새로운 엔진은 다음 모바일 엔진 부트 스트 래퍼에 추가해야합니다 및 터치보기를 만듭니다.
이렇게하기 전에 기기 분리 방법을 고려해야합니다. 예를 들어 Nokia X3-02는 비교적 작은 화면을 가지고 있지만 iPad와 같은 화면을 제공합니다. 장치의 OS 사용을 고려해야합니다. 즉, Request.Browser["PlatformName"]
마지막으로, 51Degrees.mobi Foundation 버전 2는 이전 기능과 다른 기능 이름을 사용하는 자체 장치 데이터를 도입합니다. 당신은 그것에 대해 mroe을 읽을 수 있습니다 51Degrees.mobi
어떤 안드로이드 장치에서 작동하지 않습니다, 터치 스크린이 장착 된 Windows 7 노트북에서는 작동하지 않습니다. ( –
이 속성은 Request.Browser [ "IsTouchScreen"]가 아니며 지금은 ""HasTouchScreen ""이며 라이트 프리 버전에서는 제공되지 않습니다. –