chiname

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

最近ASP.NET WAP开发的一些情况!

最近要做一个与联通的WAP接口
我选择用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=02FA15FE-40D9-4DCE-9BB1-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控件来代替

   一些开发资料:
http://msdn.microsoft.com/mobility/downloads/sdks/default.aspx

http://www.dotnet247.com/247reference/__site/72

http://www.wapease.com

http://www.sp-forum.org/download/list.asp?type=14

http://www2.chn.monternet.com:8080/devdownload/DevWapSimulator.jsp

http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.framework.aspnet.mobile/

   
posted on 2004-11-26 13:53 edobnet 阅读(5043) 评论(23)  编辑 收藏 收藏至365Key 所属分类: .Net

评论

# re: 最近ASP.NET WAP开发的一些情况! 2005-01-26 13:26 show
你的这篇文章对我很有用,解决了我现在所遇到得问题。但我想问你个问题,我手头有好几个模拟器,结果一个和一个不一样,不知道以那模拟器的结果为准!!谢谢
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-01-26 18:08 edobnet
UP.SDK4.0,(推荐)
OPenWave 5.0 (测试时需要),
这个是我开发测试的模拟器,觉得比较好,
最终还是要用真实手机来测试。
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-01-29 18:30 zxq200407
为什么我把你配置webconfig文件的东西考到我的webconfig文件里它告诉我元素名称中有不支持的字符“.”
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-01-30 18:40 edobnet
先Copy到记事本,再COPY到web.config里,注意:是在system.web下面
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-02-16 15:02 zxq200407
edobnet 你说的方法我试了,可是还有问题:“尽管此XML文档的格式正确,但它包含了数据视图无法显示的结构。该网格无法正确显示数据,原因在于元素名称中有不受支持的字符“。””
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-02-16 15:05 zxq200407
我的QQ是41272225,加我吧
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-04-24 22:54 cxty
怎么直接在空间中输出XML标记呢?
DotNet老自动格式化咯!!!
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-04-27 11:48 离别钩
您好,我开通了一个论坛,专门讨论用asp.net开发wap的,招募斑竹。欢迎大家访问: http://www.wapdotnet.com
  

# .net开发wap的技术论坛 2005-04-28 11:53 wapDotnet
一个用dontnet开发WAP的专业论坛:
http://www.wapDotnet.com
欢迎访问!
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-04-29 18:18 edobnet
可以使用,XML+XSLT生成,WML也是不错的方法,
不过这个要求你懂WML
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-06-03 16:31 zhmh
我用.net输出xhtml,做wap2.0的页面,为什么在西门子SX1上显示乱码?其它手机可以正确显示,我的web.config是这样设置的<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-06-03 22:34 edobnet
<globalization requestEncoding="gb2312" responseEncoding="gb2312" /> 试试

  

# re: 最近ASP.NET WAP开发的一些情况! 2005-06-06 15:43 zhmh
首先谢谢edobnet,不过还是不行,会提示“连接超时”。把其中requestEncoding="gb2312" 改成UTF-8 可以,不过还是乱码。
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-06-13 10:35 zgq
不用改成 <globalization requestEncoding="gb2312" responseEncoding="gb2312" />,
在你的iis中该成utf-8,再不成就用工具把你的文字从unicode转成utf-8
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-07-22 09:25 chen
ASP.net 移动控件 做的WAP LIST分页,MOTO手机不适配怎么办
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-07-27 10:04 Jarod
web.config 设置如下 <globalization requestEncoding="gb2312"
responseEncoding="gb2312" />


但我在Wap页面中文本框中输入的中文中文为乱码?下拉框等其他程序中的中文正常。

还有在IE中测试程序也正常,可能是手机只支持utf-8的缘故。

请问如何解决?
谢谢!
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-07-29 18:06 jack
请问,强制wml输出,是不是所有设备都按wml1.1输出。没有区别了
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-08-02 12:52 edobnet
是的!
  

# 哈哈哈 2005-09-27 11:30 毒素大
点击下载下载
1024 x 768 像素 - 248k
myarticle.enet.com.cn/.../ 1084511501054.jpg
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-10-12 20:58 北极雪
问个问题,楼主在开发的时候装了MMIT没有?
我下载了MIT1.0但是装不上,说是和Framework不合适~

是不是一定要装MIT啊?

另外用了楼主的方法,的确生成了WML的文件,用模拟器在本机上测试一切正常,但是放到服务器上就荡掉了,这是IIS配置的问题吗?有什么特殊的配置要做的吗?

谢谢楼主啊
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-10-13 13:52 edobnet
MIT1.0,没有用过,放在服务器上,你手机测试一下吧!关于IIS,你可以添加一些,MIME类别,右键,IIS管理器的,计算机名就可以设置!
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-10-14 19:35 北极雪
IIS中添了vnd.wml之类的什么,但是还是不行,在本机上还是可以运行,可以很好的输出WML,放到服务器上就挂了,拿同学的支持性能好的手机测试也不行,模拟器上也不行;
只在本机上行~
和machine.config有没有关系?
  

# re: 最近ASP.NET WAP开发的一些情况! 2005-10-16 14:08 edobnet
machine.config,默认根据正则表达式,还判断,是不是要输出WML,我在实践,基本不能设置太多的!,先用模拟器,多试几种!
posted on 2005-11-16 08:49  把我的欢乐带给你  阅读(1729)  评论(0)    收藏  举报