参考资料:

http://www.cnblogs.com/xy6521/articles/410595.html
http://www.cnblogs.com/yjmyzz/archive/2009/02/18/1392902.html
http://www.fool2fish.cn/?cat=5

 

选择用ASP.NET开发,ASP.NET开发WAP站点,实在简单,就是一个移动控件的运用,根本不用懂WML语法.唯一不同的,就是一个ASPX文件可以支持多个FORM,不同FORM之间可以切换,
最后ASP.NET根据访问的设备,输出不同的内容,
如果用IE访问就输出HTML,手机访问,输出WML,
不过在开发过程中也遇到了很多问题,一些问题总结如下:
1.模拟器:

代码
<table width="222"  border="0" cellpadding="0" cellspacing="0" id="bkimg" style="display:block"><tr><td height="71" colspan="3" align="left" valign="bottom">
<img src="http://www.roboo.com/pages/images/layout/phone_mb3_up.gif" width="222" height="82"  /></td></tr><tr><td width="28" height="205" align="left" valign="bottom">
<img src="http://www.roboo.com/pages/images/layout/phone_mb3_left.gif" width="28" height="240"  /></td><td width="167" valign="top" >
<iframe name="wbb" id="wbb"    marginheight="0" marginwidth="0" width="165px" height="240px" frameborder="0" src="http://www.roboo.com/pages/simulator/crawldatah.jsp?url=wap.56hui.com"></iframe> 
</td><td width="27" align="right" valign="top">
<img src="http://www.roboo.com/pages/images/layout/phone_mb3_right.gif" width="27" height="240"  /></td></tr><tr><td  colspan="3" align="left" valign="bottom">
<img src="http://www.roboo.com/pages/images/layout/phone_mb3_down.gif" width="222"  />
</td></tr></table>

将"http://www.roboo.com/pages/simulator/crawldatah.jsp?url=m.ta0bao.com"的"m.ta0bao.com"换成自己的wap地址


强制输出WML:
在web.config
添加下面内容<system.web>下

 

wap开发<browserCaps>
wap开发            
<result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
wap开发            
<use var="HTTP_USER_AGENT"/>
wap开发                     preferredRenderingType = "wml11"
wap开发                     preferredRenderingMime = "text/vnd.wap.wml"
wap开发                     preferredImageMime = "image/vnd.wap.wbmp"
wap开发
</browserCaps>


如果定义相关其它属性可以完整的移动设置属性:

wap开发    <browserCaps>
wap开发            
<result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
wap开发            
<use var="HTTP_USER_AGENT"/>
wap开发
wap开发             browser=Unknown
wap开发             version=0.0
wap开发             majorversion=0
wap开发             minorversion=0
wap开发             frames=false
wap开发             tables=false
wap开发             cookies=false
wap开发             backgroundsounds=false
wap开发             vbscript=false
wap开发             javascript=false
wap开发             javaapplets=false
wap开发             activexcontrols=false
wap开发             win16=false
wap开发             win32=false
wap开发             beta=false
wap开发             ak=false
wap开发             sk=false
wap开发             aol=false
wap开发             crawler=false
wap开发             cdf=false
wap开发             gold=false
wap开发             authenticodeupdate=false
wap开发             tagwriter=System.Web.UI.Html32TextWriter
wap开发             ecmascriptversion=0.0
wap开发             msdomversion=0.0
wap开发             w3cdomversion=0.0
wap开发             platform=Unknown
wap开发             css1=false
wap开发             css2=false
wap开发             xml=false
wap开发
wap开发             mobileDeviceManufacturer = "Unknown"
wap开发             mobileDeviceModel = "Unknown"
wap开发
wap开发             gatewayVersion = "None"
wap开发             gatewayMajorVersion = "0"
wap开发             gatewayMinorVersion = "0"
wap开发
wap开发            preferredRenderingType = "wml11"
wap开发            preferredRenderingMime = "text/vnd.wap.wml"
wap开发            preferredImageMime = "image/vnd.wap.wbmp"
wap开发
wap开发             defaultScreenCharactersWidth = "12"
wap开发             defaultScreenCharactersHeight = "6"
wap开发             defaultScreenPixelsWidth = "96"
wap开发             defaultScreenPixelsHeight = "72"
wap开发             defaultCharacterWidth = "8"
wap开发             defaultCharacterHeight = "12"
wap开发             screenBitDepth = "1"
wap开发             isColor = "false"
wap开发             inputType = "telephoneKeypad"
wap开发
wap开发             numberOfSoftkeys = "0"
wap开发             maximumSoftkeyLabelLength = "5"
wap开发
wap开发             canInitiateVoiceCall = "false"
wap开发
wap开发             canSendMail = "true"
wap开发             hasBackButton = "true"
wap开发             rendersWmlDoAcceptsInline = "true"
wap开发             rendersWmlSelectsAsMenuCards = "true"
wap开发             rendersBreaksAfterWmlAnchor = "false"
wap开发             rendersBreaksAfterWmlInput = "false"
wap开发             rendersBreakBeforeWmlSelectAndInput = "true"
wap开发             requiresAttributeColonSubstitution = "true"
wap开发             requiresPhoneNumbersAsPlainText = "false"
wap开发             requiresUrlEncodedPostfieldValues = "false"
wap开发             requiredMetaTagNameValue = ""
wap开发             rendersBreaksAfterHtmlLists = "true"
wap开发             requiresUniqueHtmlCheckboxNames = "true"
wap开发             requiresUniqueHtmlInputNames = "true"
wap开发             requiresUniqueFilePathSuffix = "true"
wap开发             supportsCss = "false"
wap开发             hidesRightAlignedMultiselectScrollbars = "false"
wap开发             canRenderAfterInputOrSelectElement = "true"
wap开发             canRenderInputAndSelectElementsTogether = "true"
wap开发             canRenderOneventAndPrevElementsTogether = "true"
wap开发             canCombineFormsInDeck = "true"
wap开发             canRenderMixedSelects = "true"
wap开发             canRenderPostBackCards = "true"
wap开发             canRenderSetvarZeroWithMultiSelectionList = "true"
wap开发             supportsImageSubmit = "true"
wap开发             supportsSelectMultiple = "true"
wap开发             requiresHtmlAdaptiveErrorReporting = "false"
wap开发             requiresContentTypeMetaTag = "false"
wap开发             requiresDBCSCharacter = "false"
wap开发             requiresOutputOptimization = "false"
wap开发             supportsAccesskeyAttribute = "false"
wap开发             supportsInputIStyle = "false"
wap开发             supportsInputMode = "false"
wap开发             supportsIModeSymbols = "false"
wap开发             supportsJPhoneSymbols = "false"
wap开发             supportsJPhoneMultiMediaAttributes = "false"
wap开发             maximumRenderedPageSize = "2000"
wap开发             requiresSpecialViewStateEncoding = "false"
wap开发             requiresNoBreakInFormatting = "false"
wap开发             requiresLeadingPageBreak = "false"
wap开发             supportsQueryStringInFormAction = "true"
wap开发             supportsCacheControlMetaTag = "true"
wap开发             supportsUncheck = "true"
wap开发             canRenderEmptySelects = "true"
wap开发             supportsRedirectWithCookie = "true"
wap开发             supportsEmptyStringInCookieValue = "true"
wap开发             cachesAllResponsesWithExpires = "false"
wap开发             requiresNoSoftkeyLabels = "false"
wap开发             defaultSubmitButtonLimit = "1"
wap开发            
wap开发             supportsBold = "false"
wap开发             supportsItalic = "false"
wap开发             supportsFontSize = "false"
wap开发             supportsFontName = "false"
wap开发             supportsFontColor = "true"
wap开发             supportsBodyColor = "true"
wap开发             supportsDivAlign = "true"
wap开发             supportsDivNoWrap = "false"
wap开发             supportsCharacterEntityEncoding = "true"
wap开发
wap开发             isMobileDevice="false"
wap开发
</browserCaps>

 


具体属性的意思可以考试MSDN:设备功能列表
ms-help://MS.MSDNQTR.2003FEB.2052/mwsdk/html/mwlrfDeviceCapabilitiesTable.htm

但这样将给您在需要IE调试时带来很大的不便
下面代码将能解决IE和模拟器同时高度的问题(同样将下面代码加入system.web节点中)



 

代码
<browserCaps>
<result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<use var="HTTP_USER_AGENT"/>
<filter>
<case match="Unknown" with="%{browser}">
preferredRenderingType 
= "wml11"
preferredRenderingMime 
= "text/vnd.wap.wml"
preferredImageMime 
= "image/vnd.wap.wbmp"
type
=Unknown
</case>
</filter> 
</browserCaps>

 

2.链接:
在同一个aspx文件,使用Link控件的,#FORM来切换不同Form时在 OPenWave 5.0测试会出现错误!
建议在程序通过ActiveForm来做
3.乱码:
     如果在开发过程出现乱码,通过修改Web.Config
     <globalization
            requestEncoding="gb2312"
            responseEncoding="gb2312"
    />
4.取消移动设备缓存:

 

wap开发   Page.Response.Expires = -1;
wap开发    Response.CacheControl
= "Public";


5.重定向
重定向通过
RedirectToMobilePage函数
不过使用过程中可能会出现一些问题
建议用Link控件来代替

相关文章: