<%-- 最新动态 Begin --%>
|
|
|
|
|
|
<%-- 最新动态 End --%>
|
<%-- 最新动态 Begin --%>
|
|
|
|
|
|
<%-- 最新动态 End --%>
|
<%-- 最新动态 Begin --%>
|
|
|
|
|
|
<%-- 最新动态 End --%>
|
|
 |
|
 |
本文由中国C#技术学习中心整理 如果你对本文有不明之处请到技术论坛讨论!
用ASP.NET开发,ASP.NET开发WAP站点,实在简单,就是一个移动控件的运用,根本不用懂WML语法.唯一不同的,就是一个ASPX文件可以支持多个FORM,不同FORM之间可以切换, 最后ASP.NET根据访问的设备,输出不同的内容, 如果用IE访问就输出HTML,手机访问,输出WML, 不过在开发过程中也遇到了很多问题,一些问题总结如下: 1.模拟器选择: WINWAP, M3Gate, UP.SDK4.0,(推荐) OPenWave 5.0 (测试时需要), OPenWave6.2, (IIS 6.0应用,IIS5.0可能显示,但会有问题) CheckCom WAPBrowser 3.2 模拟器问题: ASP.NET把一些常有的模拟器,的配制信息用正则表达式写在Machine.config里 在上述的模拟器中,我只有UP.SDK4.0,OPenWave 5.0, 他们只是一个公司的产品: 需要下载,配制文件驱动更新:现在最新版本是:Device 4下载请到这里下载: http://www.microsoft.com/downloads/details.aspx?FamilyId ... B1-4DD61A5B7CCB&displaylang=en 但是,即使驱动更新以后,还是一些设备不能访问: 这时需要强制输出WML: 在web.config 添加下面内容<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"/> preferredRenderingType = "wml11" preferredRenderingMime = "text/vnd.wap.wml" preferredImageMime = "image/vnd.wap.wbmp" </browserCaps> 如果定义相关其它属性可以完整的移动设置属性: <browserCaps> <result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> <use var="HTTP_USER_AGENT"/>
browser=Unknown version=0.0 majorversion=0 minorversion=0 frames=false tables=false cookies=false backgroundsounds=false vbscript=false javascript=false javaapplets=false activexcontrols=false win16=false win32=false beta=false ak=false sk=false aol=false crawler=false cdf=false gold=false authenticodeupdate=false tagwriter=System.Web.UI.Html32TextWriter ecmascriptversion=0.0 msdomversion=0.0 w3cdomversion=0.0 platform=Unknown css1=false css2=false xml=false
mobileDeviceManufacturer = "Unknown" mobileDeviceModel = "Unknown"
gatewayVersion = "None" gatewayMajorVersion = "0" gatewayMinorVersion = "0"
preferredRenderingType = "wml11" preferredRenderingMime = "text/vnd.wap.wml" preferredImageMime = "image/vnd.wap.wbmp"
defaultScreenCharactersWidth = "12" defaultScreenCharactersHeight = "6" defaultScreenPixelsWidth = "96" defaultScreenPixelsHeight = "72" defaultCharacterWidth = "8" defaultCharacterHeight = "12" screenBitDepth = "1" isColor = "false" inputType = "telephoneKeypad"
numberOfSoftkeys = "0" maximumSoftkeyLabelLength = "5"
canInitiateVoiceCall = "false"
canSendMail = "true" hasBackButton = "true" rendersWmlDoAcceptsInline = "true" rendersWmlSelectsAsMenuCards = "true" rendersBreaksAfterWmlAnchor = "false" rendersBreaksAfterWmlInput = "false" rendersBreakBeforeWmlSelectAndInput = "true" requiresAttributeColonSubstitution = "true" requiresPhoneNumbersAsPlainText = "false" requiresUrlEncodedPostfieldValues = "false" requiredMetaTagNameValue = "" rendersBreaksAfterHtmlLists = "true" requiresUniqueHtmlCheckboxNames = "true" requiresUniqueHtmlInputNames = "true" requiresUniqueFilePathSuffix = "true" supportsCss = "false" hidesRightAlignedMultiselectScrollbars = "false" canRenderAfterInputOrSelectElement = "true" canRenderInputAndSelectElementsTogether = "true" canRenderOneventAndPrevElementsTogether = "true" canCombineFormsInDeck = "true" canRenderMixedSelects = "true" canRenderPostBackCards = "true" canRenderSetvarZeroWithMultiSelectionList = "true" supportsImageSubmit = "true" supportsSelectMultiple = "true" requiresHtmlAdaptiveErrorReporting = "false" requiresContentTypeMetaTag = "false" requiresDBCSCharacter = "false" requiresOutputOptimization = "false" supportsAccesskeyAttribute = "false" supportsInputIStyle = "false" supportsInputMode = "false" supportsIModeSymbols = "false" supportsJPhoneSymbols = "false" supportsJPhoneMultiMediaAttributes = "false" maximumRenderedPageSize = "2000" requiresSpecialViewStateEncoding = "false" requiresNoBreakInFormatting = "false" requiresLeadingPageBreak = "false" supportsQueryStringInFormAction = "true" supportsCacheControlMetaTag = "true" supportsUncheck = "true" canRenderEmptySelects = "true" supportsRedirectWithCookie = "true" supportsEmptyStringInCookieValue = "true" cachesAllResponsesWithExpires = "false" requiresNoSoftkeyLabels = "false" defaultSubmitButtonLimit = "1" supportsBold = "false" supportsItalic = "false" supportsFontSize = "false" supportsFontName = "false" supportsFontColor = "true" supportsBodyColor = "true" supportsDivAlign = "true" supportsDivNoWrap = "false" supportsCharacterEntityEncoding = "true"
isMobileDevice="false" </browserCaps> 具体属性的意思可以考试MSDN:设备功能列表 ms-help://MS.MSDNQTR.2003FEB.2052/mwsdk/html/mwlrfDeviceCapabilitiesTable.htm
2.链接: 在同一个aspx文件,使用Link控件的,#FORM来切换不同Form时在 OPenWave 5.0测试会出现错误! 建议在程序通过ActiveForm来做 3.乱码: 如果在开发过程出现乱码,通过修改Web.Config <globalization requestEncoding="gb2312" responseEncoding="gb2312" /> 4.取消移动设备缓存: Page.Response.Expires = -1; Response.CacheControl = "Public"; 5.重定向 重定向通过 RedirectToMobilePage函数 不过使用过程中可能会出现一些问题 建议用Link控件来代替用ASP.NET开发,ASP.NET开发WAP站点,实在简单,就是一个移动控件的运用,根本不用懂WML语法.唯一不同的,就是一个ASPX文件可以支持多个FORM,不同FORM之间可以切换, 最后ASP.NET根据访问的设备,输出不同的内容, 如果用IE访问就输出HTML,手机访问,输出WML, 不过在开发过程中也遇到了很多问题,一些问题总结如下: 1.模拟器选择: WINWAP, M3Gate, UP.SDK4.0,(推荐) OPenWave 5.0 (测试时需要), OPenWave6.2, (IIS 6.0应用,IIS5.0可能显示,但会有问题) CheckCom WAPBrowser 3.2 模拟器问题: ASP.NET把一些常有的模拟器,的配制信息用正则表达式写在Machine.config里 在上述的模拟器中,我只有UP.SDK4.0,OPenWave 5.0, 他们只是一个公司的产品: 需要下载,配制文件驱动更新:现在最新版本是:Device 4下载请到这里下载: http://www.microsoft.com/downloads/details.aspx?FamilyId ... B1-4DD61A5B7CCB&displaylang=en 但是,即使驱动更新以后,还是一些设备不能访问: 这时需要强制输出WML: 在web.config 添加下面内容<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"/> preferredRenderingType = "wml11" preferredRenderingMime = "text/vnd.wap.wml" preferredImageMime = "image/vnd.wap.wbmp" </browserCaps> 如果定义相关其它属性可以完整的移动设置属性: <browserCaps> <result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> <use var="HTTP_USER_AGENT"/>
browser=Unknown version=0.0 majorversion=0 minorversion=0 frames=false tables=false cookies=false backgroundsounds=false vbscript=false javascript=false javaapplets=false activexcontrols=false win16=false win32=false beta=false ak=false sk=false aol=false crawler=false cdf=false gold=false authenticodeupdate=false tagwriter=System.Web.UI.Html32TextWriter ecmascriptversion=0.0 msdomversion=0.0 w3cdomversion=0.0 platform=Unknown css1=false css2=false xml=false
mobileDeviceManufacturer = "Unknown" mobileDeviceModel = "Unknown"
gatewayVersion = "None" gatewayMajorVersion = "0" gatewayMinorVersion = "0"
preferredRenderingType = "wml11" preferredRenderingMime = "text/vnd.wap.wml" preferredImageMime = "image/vnd.wap.wbmp"
defaultScreenCharactersWidth = "12" defaultScreenCharactersHeight = "6" defaultScreenPixelsWidth = "96" defaultScreenPixelsHeight = "72" defaultCharacterWidth = "8" defaultCharacterHeight = "12" screenBitDepth = "1" isColor = "false" inputType = "telephoneKeypad"
numberOfSoftkeys = "0" maximumSoftkeyLabelLength = "5"
canInitiateVoiceCall = "false"
canSendMail = "true" hasBackButton = "true" rendersWmlDoAcceptsInline = "true" rendersWmlSelectsAsMenuCards = "true" rendersBreaksAfterWmlAnchor = "false" rendersBreaksAfterWmlInput = "false" rendersBreakBeforeWmlSelectAndInput = "true" requiresAttributeColonSubstitution = "true" requiresPhoneNumbersAsPlainText = "false" requiresUrlEncodedPostfieldValues = "false" requiredMetaTagNameValue = "" rendersBreaksAfterHtmlLists = "true" requiresUniqueHtmlCheckboxNames = "true" requiresUniqueHtmlInputNames = "true" requiresUniqueFilePathSuffix = "true" supportsCss = "false" hidesRightAlignedMultiselectScrollbars = "false" canRenderAfterInputOrSelectElement = "true" canRenderInputAndSelectElementsTogether = "true" canRenderOneventAndPrevElementsTogether = "true" canCombineFormsInDeck = "true" canRenderMixedSelects = "true" canRenderPostBackCards = "true" canRenderSetvarZeroWithMultiSelectionList = "true" supportsImageSubmit = "true" supportsSelectMultiple = "true" requiresHtmlAdaptiveErrorReporting = "false" requiresContentTypeMetaTag = "false" requiresDBCSCharacter = "false" requiresOutputOptimization = "false" supportsAccesskeyAttribute = "false" supportsInputIStyle = "false" supportsInputMode = "false" supportsIModeSymbols = "false" supportsJPhoneSymbols = "false" supportsJPhoneMultiMediaAttributes = "false" maximumRenderedPageSize = "2000" requiresSpecialViewStateEncoding = "false" requiresNoBreakInFormatting = "false" requiresLeadingPageBreak = "false" supportsQueryStringInFormAction = "true" supportsCacheControlMetaTag = "true" supportsUncheck = "true" canRenderEmptySelects = "true" supportsRedirectWithCookie = "true" supportsEmptyStringInCookieValue = "true" cachesAllResponsesWithExpires = "false" requiresNoSoftkeyLabels = "false" defaultSubmitButtonLimit = "1" supportsBold = "false" supportsItalic = "false" supportsFontSize = "false" supportsFontName = "false" supportsFontColor = "true" supportsBodyColor = "true" supportsDivAlign = "true" supportsDivNoWrap = "false" supportsCharacterEntityEncoding = "true"
isMobileDevice="false" </browserCaps> 具体属性的意思可以考试MSDN:设备功能列表 ms-help://MS.MSDNQTR.2003FEB.2052/mwsdk/html/mwlrfDeviceCapabilitiesTable.htm
2.链接: 在同一个aspx文件,使用Link控件的,#FORM来切换不同Form时在 OPenWave 5.0测试会出现错误! 建议在程序通过ActiveForm来做 3.乱码: 如果在开发过程出现乱码,通过修改Web.Config <globalization requestEncoding="gb2312" responseEncoding="gb2312" /> 4.取消移动设备缓存: Page.Response.Expires = -1; Response.CacheControl = "Public"; 5.重定向 重定向通过 RedirectToMobilePage函数 不过使用过程中可能会出现一些问题 建议用Link控件来代替
本文由中国C#技术学习中心整理 如果你对本文有不明之处请到技术论坛讨论!
|
|