我在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;
}
那么这个新的引擎将需要添加到移动引擎启动捆扎机和创建触摸视图。
之前,虽然这样做,你应该想想,如果这是你要如何单独的设备。例如,诺基亚X3-02有一个相对较小的屏幕,但会呈现与iPad类似的视图。也许你应该考虑使用设备的操作系统,即Request.Browser["PlatformName"]
最后,51Degrees.mobi Foundation第2版引入了我们自己的设备数据,它使用了前一个设备的不同功能名称。你可以阅读mroe关于它在51Degrees.mobi
不适用于任何Android设备,带触摸屏的Windows 7笔记本电脑不工作,要么:( – 2013-07-25 17:03:23
的属性不再的Request.Browser [“IsTouchScreen”]但是现在[“HasTouchScreen”],而不是在他们的精简版,免费版提供。 – 2015-06-07 11:52:34