簡體   English   中英

如何檢測平板電腦(任何)請求?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM