[英]How to detect tablet(any) requests?
if (Request.Browser.IsMobileDevice)
{
Response.Redirect("/mobile/Login.htm");`
}
為了檢測移動設備但同時檢測到移動設備上的平板電腦,我需要檢查是否有平板電腦或功能檢查設備屏幕大小的功能。
感謝“我的工作,我使用ScreenPixelsWidth和ScreenPixelsHeight這是代碼,如果有任何需要它
int wight = Request.Browser.ScreenPixelsWidth;
int height = Request.Browser.ScreenPixelsHeight;
if (Request.Browser.IsMobileDevice && wight < 720 && height<1280)
{
Response.Redirect("/mobile/Login.htm");
}
我有一個類似的問題,並嘗試使用:HttpContext.Request.Browser.ScreenPixelsWidth
然而,無論設備(iphone或ipad)如何,它總是返回640像素的值。 我通過創建靜態方法來檢查用戶代理字符串來解決此問題。
public class DeviceHelper
{
public static bool IsTablet(string userAgent, bool isMobile)
{
Regex r = new Regex("ipad|android|android 3.0|xoom|sch-i800|playbook|tablet|kindle|nexus");
bool isTablet = r.IsMatch(userAgent) && isMobile;
return isTablet;
}
}
然后在我的控制器中:
if(DeviceHelper.IsTablet(Request.UserAgent, Request.Browser.IsMobileDevice))
return Redirect("..."); // redirect to tablet url
您可以使用ScreenPixelsWidth和ScreenPixelsHeight( http://msdn.microsoft.com/en-us/library/system.web.httpbrowsercapabilities.aspx ),您可以定義一個閾值,您可以在其中考慮常規版本或移動版本應該是渲染。
還有很多方法可以解決這個問題,但由於您已經在使用HttpBrowserCapabilities類,因此您也可以使用這兩個屬性。
ScreenPixelsWidth始終返回640,因此在檢測手機時無用。 我發現這個有效:
public static bool IsPhoneDevice(this HttpBrowserCapabilitiesBase Browser)
{
return (Browser.IsMobileDevice && Browser.CanInitiateVoiceCall);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.