技术开发 频道

使用ASP.NET MVC检测、重定向移动设备

  【IT168 专稿】本文向大家介绍利用ASP.NET进行移动开发的各种方法,用以确定一个HTTP请求是否来自移动电话,如果是则将其重定向到专门为移动浏览器做过优化的页面。

  方法1:使用ASP.NET检测User-Agent

  使用ASP.net平台为我们的站点添加服务器端浏览器检测和重定向功能是件非常容易的事情。下面的代码可以插入有关文件(例如default.aspx.cs)Web表单代码的Page_Load事件中。要想使其在全站内生效,只需将其添加到母版页(Master Page)文件的Page_Load事件之内即可。

  string strUserAgent = Request.UserAgent.ToString().ToLower();
  
if (strUserAgent != null)
  {
  
if (Request.Browser.IsMobileDevice == true || strUserAgent.Contains("iphone") ||
  strUserAgent.Contains(
"blackberry") || strUserAgent.Contains("mobile") ||
  strUserAgent.Contains(
"windows ce") || strUserAgent.Contains("opera mini") ||
  strUserAgent.Contains(
"palm"))
  {
  Response.Redirect(
"DefaultMobile.aspx");
  }
  }

   在以上代码中,我们可以随意添加用户代理。本例中,else语句不是必需的,因为如果请求是来自标准浏览器的话,我们想让该页正常加载。

  以上代码的局限性:

  它没有捕捉所有的移动浏览器,这里只是其中一部分。

  当新的设备被引入时,我们需要更新用户代理。

  不便于解析用户代理以获得移动设备详细信息,如制造商、模式、屏幕尺寸以及所支持的图像格式等。这些信息是为特定移动设备定制页面布局所必不可少的内容。

  既然有这些局限性,您可能会问:有没有更好的方法来达到我们的目的?答案是肯定的,具体方法如下所示。

  方法2:使用.NET Mobile API即51Degrees.mobi检测User-Agent

  51Degrees.mobi提供了一个免费开源的ASP.NET移动应用程序编程接口,允许Visual Basic和C#开发人员来利用WURFL中各种广泛的移动设备信息;目前,BBC、Bank of America、MySpace 和Admob等组织已经在使用这个编程接口。WURFL设备数据库是目前公认的非常先进、最新的移动设备数据库。

  以下步骤示范如何检测移动设备,如何获得精确的设备详细资料,并将其轻松重定向到一个移动设备着陆页面。这里已经很好地克服了方法1的局限性。

  步骤1:创建web站点

  注意:Visual Studio 2008默认安装没有“Mobile Web Form”模板,但是,为了开发移动web应用程序,我们必须安装一些模板。 为了安装这些模板,可以从Visual Web Developer Team Blog中下载它们,然后解压ZIP文件,并按照每个Zip文件夹中的自述文件进行安装。一旦安装完毕,就可以进行下面的步骤了。 Visual studio用户无需安装这些模板,因为它们早就安装好了。

  ·创建一个C# ASP.NET 网站。

  ·该网站将使用默认Web窗体“default.aspx”创建,名称可以保持不变。

  ·通过“Add New Item -> Mobile Web Form”为该网站添加Mobile Web Form。 将这个移动web窗体命名为“M.aspx”。

  步骤2:下载51Degrees.mobi资源

  对于步骤1中创建的web站点,还需添加如下所示的文件:

  App_Data/wurfl.xml.gz

  App_Data/web_browsers_patch.xml.gz

  bin/Mobile.dll

  这些文件下列地址:http://www.51degrees.mobi/LinkClick.aspx?fileticket=bkGhrKfBMgM%3d&tabid=112处下载。

  下载完成后,我们的网站应该具有如下所示的文件夹结构。


图1 网站的文件夹结构

0
相关文章