当设备访问网站时,我需要将MVC应用程序从www.company.com重定向到www.company.com/mobile,宽度低于640px,高度低于960px。
我更愿意在服务器中检测到请求的第一次联系,因此我不需要加载布局并在客户端检测(如果我没有错)。
感谢。
答案 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);
}
}
}
}
但获取设备的宽度和高度是不合时宜的。