在MVC和jQuery Mobile中基于设备宽度和高度重定向

时间:2014-05-01 22:46:14

标签: html css asp.net-mvc jquery-mobile

当设备访问网站时,我需要将MVC应用程序从www.company.com重定向到www.company.com/mobile,宽度低于640px,高度低于960px。

我更愿意在服务器中检测到请求的第一次联系,因此我不需要加载布局并在客户端检测(如果我没有错)。

感谢。

1 个答案:

答案 0 :(得分:0)

在研究了获得宽度和高度的不同方法之后,我决定使用这个:

    <script>
        var width = window.innerWidth || document.body.clientWidth;
        var height = window.innerHeight || document.body.clientHeight;

        if (width < 960 || height < 620)
        {
            // screen is too small, redirect to mobile version
            location.href = '/Mobile/index.html';
        }

    </script>

另一个选择是:

    void Session_Start(object sender, EventArgs e)
    {

        // Redirect mobile users to the mobile home page
        int wight = Request.Browser.ScreenPixelsWidth;
        int height = Request.Browser.ScreenPixelsHeight;

        HttpRequest httpRequest = HttpContext.Current.Request;
        if (httpRequest.Browser.IsMobileDevice)
        {
            string path = httpRequest.Url.PathAndQuery;
            bool isOnMobilePage = path.StartsWith("/Mobile/", StringComparison.OrdinalIgnoreCase);

            if (!isOnMobilePage)
            {

                if (wight < 720 && height < 1280) 
                { 
                    string redirectTo = "~/Mobile/Index.html";

                    HttpContext.Current.Response.Redirect(redirectTo);
                }
            }
        }
    }

但获取设备的宽度和高度是不合时宜的。