首 页WAP教程WAP源码WAP电子书客户留言龙腾电脑维修网158网络电视本站论坛繁體中文
设为首页
加入收藏
联系我们
您当前的位置:WAP开发网 -> WAP教程 -> ASP.net WAP开发教程 -> 文章内容 退出登录 用户管理
栏目导航
· ASP WAP开发教程 · ASP.net WAP开发教程
· PHP WAP开发教程 · WML教程
· JSP开发WAP教程 · WAP 2.0
· 综合杂谈
热门文章
· WAP 2.0教程
· WML语言基础(WAP建站...
· 用VS2005实现ASP.NE...
· [组图] php WAp开发教程
· WML语言基础(WAP建站...
· VS.NET 2003开发移动...
· [图文] ASP技术进行动态WAP...
· [图文] WML语言基础(WAP建站...
· asp.net移动控件开发...
· [图文] 创建移动Web应用程序...
相关文章
· [图文] ASP.NET移动开发之S...
· ASP.NET 移动 Web 窗...
· asp.net移动控件开发...
· ASP.NET 2.0移动开发...
· Wap页面使用asp.net...
· ASP.NET 2.0移动开发...
· ASP.NET 2.0移动开发...
· asp.net2.0移动控件...
· asp.net对wap的开发...
· asp.net强制输出WML...
ASP.NET 2.0移动开发之定义设备筛选器
作者:不详  来源:本站整理  发布时间:2007-4-23 22:03:28  发布人:tangyunfei

减小字体 增大字体


在一个ASP.NET移动页面中使用DeviceSpecific/Choice构造时,你必须定义设备筛选器来测试MobileCapabilities对象的属性。你可以在应用程序的Web.Config文件的<deviceFilters>节点中定义设备筛选器,其中每个<filter>元素就是一个设备筛选器。下面是定义设备筛选器的语法:

<system.web>
<deviceFilters>
<filter
name="filterName"
compare="capabilityName"
argument="comparisonString"/>
<filter
name="filterName"
type="className"
method="methodName"/>
</deviceFilters>
</system.web>

  如上述代码所示,存在两个<filter>元素。它分别代表两种不同类型的筛选器,分别为基于比较的筛选器和基于鉴别委托的筛选器。语法指定了这两种筛选器类型。第一种称为基于比较的筛选器,可在运行时将开发人员指定的值与设备功能的当前值进行比较。当希望确定设备是否支持某特定功能时,可使用此类筛选器。它的各个属性为:

属性 说明
name 必需的String属性,指定设备筛选器的名称。注意,在设置该属性时要注意它是区分大小写的。例如,isHTML和IsHTML代表不同的设备筛选器。
compare 它包含设备筛选器计算的属性。
argument 指定该功能应与之比较的参数。如果未提供任何参数,则将 null 用于比较。

  下面来定义一个简单的基于比较的筛选器,你完全可以在一个<deviceFilters>元素中定义基于比较的筛选器,而无需额外的代码。例如,我们可以添加一个用来测试某个移动设备是否支持HTML 3.2的设备筛选器,你仅需在Web.Config配置文件中添加如下的代码:

<system.web>
<deviceFilters>
<filter name="isHTML32" compare="PreferredRenderingType" argument="html32">
</filter>
</deviceFilters>
</system.web>

  上面的代码定义了一个名为isHTML32的筛选器,它用来测试MobileCapabilities对象的PreferredRenderingType属性是否等于html32。除了在DeviceSpecific/Choice构造中使用上面的筛选器外,你还可以通过使用MobileCapabilities对象的HasCapability方法来评估设备功能,此方法供ASP.NET内部使用,用来实现用控件语法表达的各种设备选择条件。如下面的代码所示,它也是用来查看该移动设备是否支持HTML3.2标记语言,如果设备具有指定的功能,则返回值为true,否则为false。注意,如果是基于比较的筛选器,HasCapability方法的第二个参数为null。

MobileCapablities cap = (MobileCapabilities)Request.Browser;
if ((cap.HasCapability ("isHTML32", null))
{
// Do something.
}


  提示:当你使用Visual Studio创建一个ASP.NET Web移动应用程序时,在添加的移动Web.Config配置文件中将包含大量的基于比较的筛选器。这些筛选器包括isWML11、isHTML32、isCHTML10。你可以打开该配置文件,查看所有的可用设备筛选器。

 第二类设备筛选器称为基于鉴别委托的筛选器。当需要比基于比较的筛选器更为复杂的设备筛选功能时,可以通过提供方法的类名称和方法名称,指定基于鉴别委托的筛选器。在运行时,调用提供的方法来确定设备筛选器的计算结果是否为true。该筛选器的属性为:

属性 说明
name 筛选器的名称
type 它是提供鉴别委托的类类型。名称必须符合指定完全限定类型名的Microsoft .NET标准。ASP.NET在指定的程序集中搜索该类型。
method 它是类type上方法的名称,该方法根据传递给它的MobileCapabilities实例返回一个布尔值指示当前的设备是否满足此筛选器。

  现在我们来定义一个基于鉴别委托的筛选器,首先我们需要创建一个类库项目,编写和该筛选器相关的类及方法,经过编译后,再在ASP.NET Web移动应用程序中引用包含该类的程序集,具体的实现将在后面用实例进行详细的介绍。下面是类中的静态方法的具体形式(第二个参数是可选的,你可以将该参数作为额外的输入信息添加到上面的静态方法中):

[1] [2] [3] [4]  下一页

[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登录
Copyright © 2002-2005 wapkf.com. All Rights Reserved .
浙ICP备06013604号|站长QQ:274273595