gpt4 book ai didi

asp.net-mvc-3 - 如何使用 51degrees.mobi 检测触摸屏移动设备

转载 作者:行者123 更新时间:2023-12-04 06:03:55 24 4
gpt4 key购买 nike

我正在使用 MobileViewEngines describe here由 Scott Hanselman 和 51Degrees.mobi浏览器数据库为移动和桌面浏览器呈现不同的 View 。

我现在想添加一个中间立场。适用于高端移动浏览器(苹果、安卓、windows phone、一些黑莓等)。我正在考虑使用触摸屏来区分这一类别。

所以,两个问题:

  • 如何使用 51Degrees.mobi 检测触摸屏?
  • 触摸输入是一种很好的方法吗? (我需要桌面、高端、低端类)
  • 最佳答案

    我在 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;
    }

    然后需要将这个新引擎添加到移动引擎 Bootstrap 并创建 Touch View 。

    不过,在这样做之前,您应该考虑一下这是否是您想要分离设备的方式。例如,诺基亚 X3-02 的屏幕相对较小,但呈现的 View 与 iPad 类似。也许您应该考虑使用设备的操作系统,即 Request.Browser["PlatformName"]
    最后,51Degrees.mobi Foundation 第 2 版引入了我们自己的设备数据,它使用与前一个不同的功能名称。您可以在 51Degrees.mobi 阅读有关它的信息。

    关于asp.net-mvc-3 - 如何使用 51degrees.mobi 检测触摸屏移动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8601129/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com