首 页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 2.0移动开发...
· ASP.NET 移动 Web 窗...
· asp.net移动控件开发...
· ASP.NET 2.0移动开发...
· Wap页面使用asp.net...
· ASP.NET 2.0移动开发...
· asp.net2.0移动控件...
· asp.net对wap的开发...
· asp.net强制输出WML...
ASP.NET 2.0移动开发之属性重写和模板化
作者:不详  来源:本站整理  发布时间:2006-11-3 20:40:00  发布人:tangyunfei

减小字体 增大字体




  注意,MobileCapabilities对象的各个属性是和浏览页面的移<-- -->动设备戚戚相关的。例如,当使用Pocket Internet Explorer浏览器请求页面时,MobileCapabilities对象的Browser属性将被设置为"Pocket IE", PreferredRenderingType属性值设置为"html32",而ScreenPixelsWidth 和ScreenPixelsHeight属性取决于移<-- -->动设备的具体型号,因为Pocket PC、Smartphone和Windows CE .NET都可以使用Pocket Internet Explorer浏览器,但是这些设备屏幕的分辨率是不同的。

  因为不同移<-- -->动设备使用的浏览器是不同的,因此相应的MobileCapabilities对象各个属性也存在差异。如果你要查看特定浏览器的MobileCapabilities对象,你可以在C:\WINDOWS\Microsoft.NET\Framework\[版本号]\CONFIG\Browsers目录下,查看openwave、Pocket Internet Explorer、palm和nokia等众多浏览器的信息。下面是openwave浏览器对应文件的一段代码片断,在使用该浏览器请求页面时,这些信息就会通过HTTP文件头传送到服务器端,并构建具有类似属性值的MobileCapabilities对象。

<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移<-- -->动站点程序中定义一个设备筛选器,以及设备筛选器的两种不同类型的具体实现。

上一页  [1] [2] 

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