基于设备的URL重定向

时间:2013-04-18 10:32:50

标签: c# javascript jquery asp.net .net

关于移动和应用重定向,我们需要做的是,如果某人从移动设备进入该网站?

1)如果设备使用IOS(IPAD除外),则建议用户下载移动应用程序。通过单击链接,用户将被重定向到appstore。如果用户点击“跳过应用下载”,则将用户转发到m.example.com

2)如果设备使用Android,则建议用户下载移动应用。通过点击链接,用户被重定向到谷歌播放。如果用户点击“跳过应用下载”,则将用户转发到m.example.com

3)如果用户通过任何移动设备进入,只需将其转发到移动网站m.abc.com。

4)如果设备不是上述设备:转发到m.example.com。所有链接都应以m.example.com格式打开。链接应转换为:

一个。如果有人访问www.example.com/ViewVacancy.aspx?ID=66880,则该链接应转换为http://m.example.com/vacancy.aspx?name=66880

湾如果某人从移动设备访问abc.com上的任何其他页面。他应该被重定向到http://m.example.com

1 个答案:

答案 0 :(得分:1)

Global.asax

添加以下代码:

  protected void Application_AcquireRequestState(object sender, EventArgs e)
  {

        HttpContext context = HttpContext.Current;

        if (context.Request.Browser.IsMobileDevice)
        {
            // Your Logic
        }
        if (context.Request.ServerVariables["HTTP_USER_AGENT"] != null)
        {
            //Create a list of all mobile types
            string[] mobiles =
            new[]
            { "midp", "j2me", "avant", "docomo",
            "novarra", "palmos", "palmsource",
            "240×320", "opwv", "chtml",
            "pda", "windows ce", "mmp/",
            "blackberry", "mib/", "symbian",
            "wireless", "nokia", "hand", "mobi",
            "phone", "cdm", "up.b", "audio",
            "SIE-", "SEC-", "samsung", "HTC",
            "mot-", "mitsu", "sagem", "sony"
            , "alcatel", "lg", "eric", "vx",
            "NEC", "philips", "mmm", "xx",
            "panasonic", "sharp", "wap", "sch",
            "rover", "pocket", "benq", "java",
            "pt", "pg", "vox", "amoi",
            "bird", "compal", "kg", "voda",
            "sany", "kdd", "dbt", "sendo",
            "sgh", "gradi", "jb", "dddi",
            "moto", "iphone"
            };

            //Loop through each item in the list created above
            //and check if the header contains that text
            foreach (string s in mobiles)
            {
                if (context.Request.ServerVariables["HTTP_USER_AGENT"].
                ToLower().Contains(s.ToLower()))
                {
                    //Your Logic
                }
            }
        }
   }

希望这可能会有所帮助。