科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道ASP.NET 2.0移动开发之属性重写和模板化 2

ASP.NET 2.0移动开发之属性重写和模板化 2

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

<capabilities> <capability name="browser" value="Phone.com" /> <capability name="canInitiateVoiceCall" value="true" />

作者:中国IT实验室 来源:中国IT实验室 2007年9月7日

关键字: 模板化 重写 ASP.NET

  • 评论
  • 分享微博
  • 分享邮件
<capabilities>
  <capability name="browser" value="Phone.com" />
  <capability name="canInitiateVoiceCall" value="true" />
  <capability name="canSendMail" value="false" />
  <capability name="deviceID" value="${deviceID}" />
  <capability name="deviceVersion" value="${deviceVersion}" />
  <capability name="inputType" value="telephoneKeypad" />
  <capability name="isMobileDevice" value="true" />
  <capability name="majorVersion" value="${browserMajorVersion}" />
  <capability name="maximumRenderedPageSize" value="1492" />
  <capability name="minorVersion" value="${browserMinorVersion}" />
  <capability name="numberOfSoftkeys" value="2" />
  <capability name="optimumPageWeight" value="700" />
  <capability name="preferredImageMime" value="image/vnd.wap.wbmp" />
  <capability name="preferredRenderingMime" value="text/vnd.wap.wml" />
  <capability name="preferredRenderingType" value="wml11" />
  <capability name="requiresAdaptiveErrorReporting" value="true" />
  <capability name="rendersBreakBeforeWmlSelectAndInput" value="true" />
  <capability name="rendersWmlDoAcceptsInline" value="false" />
  <capability name="rendersWmlSelectsAsMenuCards" value="true" />
  <capability name="requiresFullyQualifiedRedirectUrl" value="true" />
  <capability name="requiresNoescapedPostUrl" value="true" />
  <capability name="requiresPostRedirectionHandling" value="true" />
  <capability name="supportsRedirectWithCookie" value="false" />
  <capability name="type"
  value="Phone.com${browserMajorVersion}" />
  <capability name="version"
  value="${browserMajorVersion}${browserMinorVersion}" />
  </capabilities>
  
    当然,你还可以通过代码的方式将请求页面的浏览器信息通过MobileCapabilities对象显示页面上,代码如下:
  
  <%@ Page Inherits="System.Web.UI.MobileControls.MobilePage"
  Language="c#" %>
  <script language="c#" runat="server">
  public void Page_Load(Object sender, EventArgs e)
  {
   System.Web.Mobile.MobileCapabilities currentCapabilities;
   MobileCapabilities currentCapabilities = (MobileCapabilities)Request.Browser;
   // 创建一个MobileCapabilities对象来获取浏览器的信息
  
   if(currentCapabilities.PreferredRenderingMIME=="text/html")
   {
    Label2.Text = "你使用的是支持HTML的移动设备";
    //如果是支持HTML的移动设备的话,显示上面的文本信息
   }
   else if(currentCapabilities.PreferredRenderingMIME == "text/vnd.wap.wml")
   {
    Label2.Text = "你使用的是支持WML的移动设备";
    //如果是支持WML的移动设备的话,显示上面的文本信息
   }
   Label1.Text = "屏幕的宽度(字符数): " + currentCapabilities.ScreenCharactersWidth;
   //显示当前移动设备每一行可以显示的字符数
  }
  </script>
   <Mobile:Form runat="server" id=frmTemplate >
    <mobile:label ID="Label1" runat="server" />
    <mobile:label ID="Label2" runat="server" />
   </Mobile:Form>
  
    提示:在某些情况下,某特定移动设备的MobileCapabilities对象获得的属性值并不是你期望的值。例如,我们经常在开发过程中直接使用桌面的IE来测试程序,你也许会认为PreferredRenderingType属性值为"html40",而实际上这个值为"html32",这是因为ASP.NET移动控件只支持HTML 3.2,所以发送到桌面IE的标记语言依然是HTML 3.2。 

     MobileCapabilities的属性
  
    MobileCapabilities类包含了大量的属性,我们可以使用这些属性来获取移动设备及其浏览器 的相关信息。关于该类的具体细节你可以查看MSDN,在这里我们只列举出一些常用的属性:
  
  属性 说明
  Browser 浏览器的类型。例如Pocket IE、Microsoft Mobile Explorer、 i-mode、Nokia、Openwave和Ericsson等。
  CanInitiateVoiceCall 当该设备的浏览器可以启动语音呼叫时返回true值
  CanSendMail 如果该设备的浏览器支持邮件的发送,就返回true值
  HasBackButton 如果该浏览器有一个专用的"上一步"按钮的话,则返回true值
  InputType 返回浏览器支持的输入类型,包括virtualKeyboard、telephoneKeypad和keyboard等值
  IsColor 该设备是否支持颜色显示,是的话返回true值。
  MaximumSoftkeyLabelLength 返回软键标签可显示的文本的最大字符数
  MobileDeviceManufacturer 返回移动设备制造商的名称,如果为未知的话返回的是unknown
  MobileDeviceModel 获取移动设备的型号名(如果已知)
  NumberOfSoftkeys 返回移动设备上软键的数目。
  PreferredImageMime 返回浏览器通常首选的图像内容类型的MIME类型。这些值包括image/gif、image/jpeg、image/vnd.wap.wbmp和image/bmp
  PreferredRenderingMime 返回浏览器通常首选的内容类型的MIME类型。这些值包括text/html和text/vnd.wap.wml
  PreferredRenderingType 返回一个指出该浏览器使用的标记语言及版本信息的字符串,这些字符串通常为html32、wml11、wml12或者chtml10
  ScreenBitDepth 返回屏幕的显示深度(以每像素位数为单位)
  ScreenCharactersHeight 返回显示的近似高度(以字符行为单位)
  ScreenCharactersWidth 返回显示的近似宽度(以字符为单位)
  ScreenPixelsHeight 返回显示的近似高度(以像素为单位)
  ScreenPixelsWidth 返回显示的近似宽度(以像素为单位)
  SupportsIModeSymbols 获取一个值,该值指示浏览器是否支持i-mode符号。
  SupportsJPhoneSymbols 获取一个值,该值指示浏览器是否支持J-Phone特定的图片符号。
  
    我们可以使用HttpRequest对象的Browser属性指向MobileCapabilities对象的实例,然后可以使用此实例来读取请求浏览器和设备的功能。下面是测试MobileCapabilities对象的某个属性的代码片断:
  
  MobileCapabilities capabilities = (MobileCapabilities)Request.Browser;
  if (capabilities.ScreenPixelsWidth > 120)
  {
   // 为大屏幕的移动设备添加的代码
  }
  else
  {
   //为小屏幕的移动设备添加的代码
  }
  
    在下一节中,将介绍如何在ASP.net移动站点程序中定义一个设备筛选器,以及设备筛选器的两种不同类型的具体实现。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章