最近ASP.NET WAP開發的一些情況!

來源:互聯網
上載者:User
最近要做一個與聯通的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把一些常有的模擬器,的配製資訊用Regex寫在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/

   

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.