2022-06-17 分類: 網(wǎng)站建設(shè)
它是由一系列協(xié)議組成,用來(lái)標(biāo)準(zhǔn)化無(wú)線通信設(shè)備,可用于Internet訪問(wèn),包括收發(fā)電子郵件,訪問(wèn)WAP網(wǎng)站上的頁(yè)面等等。WAP將移動(dòng)網(wǎng)絡(luò)和Internet以及公司的局域網(wǎng)緊密地聯(lián)系起來(lái)。提供一種與網(wǎng)絡(luò)類型、運(yùn)行商和終端設(shè)備都獨(dú)立的移動(dòng)增值業(yè)務(wù)。WAP(wml)開發(fā)教程WAP(無(wú)線應(yīng)用協(xié)議)是在數(shù)字移動(dòng)電話、因特網(wǎng)或其他個(gè)人數(shù)字助理機(jī)(PDA)、計(jì)算機(jī)應(yīng)用之間進(jìn)行通訊的開放全球標(biāo)準(zhǔn)。
通過(guò)這種技術(shù),無(wú)論你在何地、何時(shí)只要你需要信息,你就可以打開你的WAP手機(jī),享受無(wú)窮無(wú)盡的網(wǎng)上信息或者網(wǎng)上資源。如:綜合新聞、天氣預(yù)報(bào)、股市動(dòng)態(tài)、商業(yè)報(bào)道、當(dāng)前匯率等。電子商務(wù)、網(wǎng)上銀行也將逐一實(shí)現(xiàn)。你還可以隨時(shí)隨地獲得體育比賽結(jié)果、娛樂(lè)圈趣聞以及幽默故事,為生活增添情趣,也可以利用網(wǎng)上預(yù)定功能,把生活安排的有條不紊。WAP協(xié)議包括以下幾層:1、Wireless Application Environment (WAE)2、Wireless Session Layer (WSL)3、Wireless Transaction Layer (WTP)4、Wireless Transport Layer Security (WTLS)5、Wireless Transport Layer (WDP)其中,WAE層含有微型瀏覽器、WML 、WMLSCRIPT的解釋器等等功能。WTLS層為無(wú)線電子商務(wù)及無(wú)線加密傳輸數(shù)據(jù)時(shí)提供安全方面的基本功能。WAP協(xié)議的誕生是WAP論壇成員多年努力的結(jié)果。它是針對(duì)不同的協(xié)議層定義了一系列協(xié)議,這些協(xié)議使得各方面的廠商和公司可以協(xié)同工作,開發(fā)無(wú)線通信網(wǎng)絡(luò)的應(yīng)用。目前有超過(guò)100個(gè)成員加入WAP論壇,包括有終端和基礎(chǔ)設(shè)備的制造商,有移動(dòng)通信的網(wǎng)絡(luò)運(yùn)營(yíng)商,有業(yè)務(wù)提供商,有軟件公司,也有網(wǎng)絡(luò)內(nèi)容提供商等,共同為移動(dòng)設(shè)備開發(fā)服務(wù)和應(yīng)用。但是,目前由于無(wú)線網(wǎng)的帶寬等等因素的限制,WAP手機(jī)的在多媒體上的應(yīng)用如:可視會(huì)議、多媒體教學(xué)等等,還須一段時(shí)日。WAP規(guī)范還在不斷地完善,WAP論壇成員們?cè)诩泳o開發(fā)功能完善的WAP設(shè)備,這無(wú)疑加快其在無(wú)線因特網(wǎng)綜合服務(wù)領(lǐng)域的擴(kuò)展速度。關(guān)于WAP有幾點(diǎn),應(yīng)該注意一下:1.WAP不只是將手機(jī)帶入IP/Internet網(wǎng)絡(luò)WAP規(guī)范考慮了很多無(wú)線網(wǎng)絡(luò)和手機(jī)的特性。即便是3G的手機(jī)也無(wú)法把屏幕做的象通用計(jì)算機(jī)一樣,來(lái)瀏覽HTML頁(yè)面。直接接入IP網(wǎng),9110在98年就可以,但是應(yīng)用呢,不可能Nokia, Motarola, Ericsson推出手機(jī)時(shí)各自定義一套應(yīng)用。象WWW一樣,在規(guī)范推出以前,已經(jīng)有了很多基于IP網(wǎng)絡(luò)的應(yīng)用,包括一些做的很好的軟件。但I(xiàn)nternet遍地開花卻是在WWW規(guī)范推出之后。WAP很大的意義在于統(tǒng)一的標(biāo)準(zhǔn)。WAP和無(wú)線IP網(wǎng)絡(luò)并不矛盾,WAP協(xié)議規(guī)定,若承載基于IP,WDP就是UDP。等無(wú)線IP網(wǎng)絡(luò)普及,若認(rèn)為上面幾層太繁瑣,最多是WAP協(xié)議中間幾層略掉(其實(shí)也沒(méi)太多東西)。2.WAP應(yīng)用模式很多只要手機(jī)和網(wǎng)絡(luò)支持統(tǒng)一標(biāo)準(zhǔn),業(yè)務(wù)發(fā)展是不可限量的。這一點(diǎn)就不多說(shuō)了。3.WAP是發(fā)展的WAP規(guī)范不僅定義了和Internet結(jié)合部分,還定義WTE,及話音部分,可以說(shuō)發(fā)展還早呢。要是以后通訊核心網(wǎng)建起來(lái),話音業(yè)務(wù)沒(méi)準(zhǔn)都采用WAP來(lái)實(shí)現(xiàn)。WML學(xué)習(xí)(一)概述WML(Wireless Markup Language - 無(wú)線標(biāo)記語(yǔ)言)這種描述語(yǔ)言同我們常聽說(shuō)的HTML語(yǔ)言同出一家,都屬于X ML語(yǔ)言這一大家族。HTML語(yǔ)言寫出的內(nèi)容,我們可以在我們的PC機(jī)上用IE或是Netscape等瀏覽器進(jìn)行閱讀,而 WML語(yǔ)言寫出的文件則是專門用來(lái)在手機(jī)等的一些無(wú)線終端顯示屏上顯示,供人們閱讀的,并且同樣也可以向使用者提供人機(jī)交互界面,接受使用者輸入的查詢等信息,然后向使用者返回他所想要獲得的最終信息?;疽?guī)則* WML使用XML文檔字符集,目前支持 Unicode 2.0,和HDML不同, WML的所有標(biāo)簽,屬性和規(guī)定的可接收值必須小寫,CARD的名字和變量也是區(qū)分大小寫的。和HDML一樣,對(duì)于連續(xù)的空字符,只顯示一個(gè)空格。標(biāo)簽內(nèi)屬性的值必須用“或者‘括起來(lái),屬性名,=和值之間不能有空格。對(duì)于不成對(duì)出現(xiàn)的標(biāo)簽,必須在 》 前加 / ,比如《br/》。在對(duì)變量的引用上和HDML基本相同,有:以下為引用的內(nèi)容:$(var1:esc)$(var1:noesc)$(var1:unesc)三種形式,具體含義參見前面HDML的相關(guān)部分。在對(duì)保留字符的處理上也基本相同,對(duì)應(yīng)的取代字符有:以下為引用的內(nèi)容:《 《》 》’ '” “& &$ $$空格- -這里要指出的是在URL的傳遞過(guò)程中,用來(lái)連接參數(shù)的 & 必須轉(zhuǎn)化為 & 。WML學(xué)習(xí)(二)基本格式和文件頭wml文件的一般格式:以下為引用的內(nèi)容:《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《head》《access/》《meta.。../》《/head》《card》Some contents.。.《/card》《wml》結(jié)構(gòu)看上去和HTMl文件很類似,對(duì)于每一個(gè)DECK,在其文檔開頭必須指明以下的類型聲明:以下為引用的內(nèi)容:《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》千萬(wàn)注意字母的大小寫。對(duì)于一個(gè)DECK,其文件大小最好不要超過(guò)1.2K?!秝ml》標(biāo)簽和HTML中的《html》標(biāo)簽一樣,用來(lái)表明這是一個(gè) WML的DECK,它有一個(gè)可選的xml:lang屬性來(lái)制定文檔的語(yǔ)言,比如《wml xml:lang=”zh“》表示文檔語(yǔ)言為中文。和HTML一樣《head》標(biāo)簽包含了該DESK的相關(guān)信息?!秇ead》 標(biāo)簽之間可以包含一個(gè)《access》標(biāo)簽和多個(gè)《meta》標(biāo)簽?!禷ccess domain=”域“ path=”/路徑“ /》相當(dāng)于HTML中的《BASE》標(biāo)簽,指定該DECK的訪問(wèn)控制信息,它用兩個(gè)可選的屬性,domain用來(lái)指定域,默認(rèn)值為當(dāng)前域, path用來(lái)指定路徑,默認(rèn)值為”/“,即根目錄。由于 《access》單獨(dú)使用,所以要用/結(jié)尾,以后對(duì)于類似的情況不再贅述?!秏eta 屬性 content=”值“ scheme=”格式“ forua=”true|false“/》 和HTML中的類似,提供了該DECK的meta信息。屬性是必選的,包括一下三種情況name=”name“ UP.Link Server忽略meta數(shù)據(jù)http-equiv=”name“ UP.Link Server將meta 數(shù)據(jù)轉(zhuǎn)為 HTTP 響應(yīng)頭(同HTML)user-agent=”agent“ UP.Link Server 直接將 meta 數(shù)據(jù)傳給手機(jī)設(shè)備,content屬性也是必選的,其內(nèi)容根據(jù)屬性而定。scheme屬性目前尚不支持。forua 為可選屬性,指定在該wml文件傳到客戶端之前,《meta》標(biāo)簽是不是被中間代理刪除(因?yàn)閭鬏數(shù)膮f(xié)議可能改變),默認(rèn)值為false。目前支持的meta數(shù)據(jù):《meta http-equiv=”Cache-Control“ content=”max-age=3600“/》指定DECK在手機(jī)內(nèi)存緩存中的存儲(chǔ)時(shí)間段,默認(rèn)的為30天(除非內(nèi)存耗盡),在該期間, 手機(jī)對(duì)于訪問(wèn)過(guò)的DECK直接從緩存里調(diào)用。如果信息是對(duì)時(shí)間敏感的,可以用max-age指定DECK在緩存里的生存期,最小單位是秒, 如果指定為0, 則每次都需通過(guò)連接服務(wù)器來(lái)調(diào)用該DECK?!秏eta user-agent=”vnd.up.markable“ content=”false“/》和《meta user-agent=”vnd.up.bookmark“ content=”指定的URL“/》 類似于普通瀏覽器的書簽功能。當(dāng)用戶將一個(gè)CARD做了書簽后,手機(jī)瀏覽器首先用一個(gè)標(biāo)記記錄該CARD, 這個(gè)標(biāo)記默認(rèn)的是《card》標(biāo)簽中的title屬性(以后會(huì)講到),然后當(dāng)用戶選擇了該書簽以后,瀏覽器就會(huì)打開被記錄的URL。但是因?yàn)樵谀J(rèn)的情況下,手機(jī)會(huì)記錄所有的DECK,所以,一般《meta》被用來(lái)使手機(jī)不要記錄當(dāng)前的URL(網(wǎng)站制作),即《meta user-agent=”vnd.up.markable“ content=”false“/》。此外, 如果要為書簽指定不同于當(dāng)前DRECk的 URL,用《meta user-agent=”vnd.up.bookmark“ content=”指定的URL“/》。一個(gè)DECK可以包含多個(gè)CARD,每個(gè)CARD的內(nèi)容可能不止一屏顯示,注意DECK,CARD和屏幕顯示范圍的關(guān)系。一個(gè)CARD用《card》和《/card》包含?!禼ard》可以包含以下可選的屬性:《card id=”name“ title=”label“ newcontext=”false“ ordered=”true“ onenterforward=”url“ onenterbackward=”url“ ontimer=”url“》*id屬性用來(lái)指定CARD的名字,可用來(lái)在CARD間跳轉(zhuǎn),相當(dāng)于在HTML中在頁(yè)內(nèi)跳轉(zhuǎn)時(shí)用《A NAME=”jumpHere“》。*title屬性用來(lái)作為書簽的標(biāo)記,該屬性一般不會(huì)顯示在屏幕上。*newcontext屬性,默認(rèn)值為false, 用來(lái)指示當(dāng)跳轉(zhuǎn)到本CARD時(shí),手機(jī)是不是要清除以前保留的信息,包括變量,堆棧里的歷史記錄,重新設(shè)置手機(jī)狀態(tài)等。*ordered屬性,默認(rèn)值是true,表明該CARD里的內(nèi)容是按固定的順序顯示, 還是按用戶的選擇來(lái)顯示。這點(diǎn)和HTMl不同,CARD 頁(yè)面里的內(nèi)容可以按一定的順序顯示,默認(rèn)的是按線性順序顯示,即按代碼的順序, 但是,要注意的是,以下三個(gè)標(biāo)簽必須按以下順序來(lái)寫《onevent》《timer》《do》, (這和以后要講的“事件”有關(guān))。這樣做是為了方便填表單,當(dāng)ordered設(shè)置為true時(shí),如果一個(gè)表單的內(nèi)容不能在一屏里顯示完,就分成多屏顯示;當(dāng)ordered設(shè)置為false時(shí), 手機(jī)可以顯示一個(gè)概要CARD來(lái)總結(jié)有效的選項(xiàng),用戶可以從中選取表單選項(xiàng)來(lái)填寫。*onXXX屬性,類似于HTML標(biāo)簽中的onXXX屬性,用來(lái)捕捉事件,當(dāng)事件被觸發(fā)時(shí)執(zhí)行指定的操作(任務(wù)),在這里是轉(zhuǎn)向某個(gè)URL。WML學(xué)習(xí)(三)顯示文本在文本的顯示上WML基本和HTML相同。文字段落包含在《p align= ”alignment“ mode=” wrapmode“》和《/p》之間,align屬性指定該段文字的對(duì)齊方式,默認(rèn)的是left,其他可選擇right和center;mode屬性指定當(dāng)一行顯示不下所有的文字時(shí)是否自動(dòng)換行,默認(rèn)的是自動(dòng)換行wrap,如果選nowrap,則在一行中顯示,瀏覽器會(huì)通過(guò)類似于水平滾動(dòng)條的機(jī)制來(lái)顯示所有文字。換行標(biāo)簽也一樣為《br/》,這里先替一下,在標(biāo)單中如果有多個(gè)《input》或者《select》,其間不要用《br/》,否則會(huì)使手機(jī)瀏覽器認(rèn)為是斷點(diǎn)而把表單分頁(yè)顯示。文字的修飾標(biāo)簽有《b》、《i》、《u》、《em》、《strong》、《big》和《small》,意義和HTML里的相同。表格的顯示標(biāo)簽也和HTML相近,使用《table title=”name“ align=”left|right|center“ columns=”列數(shù)“》、《tr》和《td》來(lái)顯示,《table》的title屬性用來(lái)給表格取個(gè)名字,columns屬性指定表的列數(shù),不能為0,可選的align屬性和前面提到的一樣是對(duì)齊方式。表格中可以包含文字和圖片。test1.wml--------------以下為引用的內(nèi)容:《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《card》《p align=”center“》《i》Hello《/i》《br/》《b》《i》World!《/i》《/b》《table title=”mytable“ align=”right“ columns=”2“》《tr》《td》1-1《/td》《td》1-2《/td》《/tr》《tr》《td》2-1《/td》《td》2-2《/td》《/tr》《/table》《/p》《/card》《/wml》顯示圖片顯示圖片(1位黑白BMP圖片)的標(biāo)簽一樣類似于HTML,《img alt=”text“ src=”url“ localsrc=”icon“ align=”left“ height=”n“ width=”n“ vspace=”n“ hspace=”n“/》,屬性中alt和src是必須要有的,其他可選。另外要注意的是《img》要放在《p》里,不能放在《do》和《option》等功能健標(biāo)簽和選單標(biāo)簽里。*alt屬性用來(lái)指定當(dāng)手機(jī)不支持圖片顯示時(shí)用來(lái)顯示的文字。*src屬性指定圖片的URL,但當(dāng)有了以下的localsrc屬性時(shí),手機(jī)瀏覽器就忽略src屬性。*localsrc屬性用來(lái)指定顯示存在手機(jī)ROM中的圖標(biāo),如果找不到,則到UP.Link Server上去找。*可選的align屬性用來(lái)表明圖片同當(dāng)前行文本的對(duì)齊方式,默認(rèn)值為bottom,可選to和middle。*height、width、vspace、hspace屬性分別指定圖片的長(zhǎng)寬和距環(huán)繞文字的間距,目前不是所有的WAP手機(jī)都支持這些屬性。test2.wml---------------以下為引用的內(nèi)容:《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《card》《p align=”center“》《img alt=”:)“ src=”xxx.bmp“ localsrc=”smileyface“/》《/p》《/card》《/wml》WML學(xué)習(xí)(四)錨和任務(wù)連接是 HTML 頁(yè)面里最基本的功能, 在 WML 里也一樣用 《a href=”url“ title=”label“》 和 《/a》來(lái)包括用來(lái)建立連接的文字,必選屬性href指定了要打開的URL,可選的title屬性給該連接取個(gè)標(biāo)記名字,這個(gè)名字將作為軟按鈕之一的ACCEPT鍵(詳見以前的HDML入門文章)的標(biāo)記顯示在屏幕的軟按鈕區(qū),所以通常可以將屬性作為提示文字是用。然而,以上的連接在WML里只是任務(wù)的一種情況,為了能夠使用其它任務(wù),所以引進(jìn)了新的標(biāo)簽《anchor title=”label“》任務(wù)標(biāo)簽 文本《/anchor》,《a》其實(shí)是當(dāng)任務(wù)標(biāo)簽為《go/》時(shí)的簡(jiǎn)單表示方式。test3.wml---------------以下為引用的內(nèi)容:《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《card》《p》《anchor title=”Link1“》《go href=”test1.wml“/》News《/anchor》《br/》《a title=”Link2“ href=”test2.wml“》Sports《/a》《/p》《/card》《/wml》WML里的任務(wù)標(biāo)簽有以下幾種,除了用于《anchor》,還可以用在事件中:1)《go》用來(lái)指示瀏覽器顯示指定的URL,包括DECK的第一個(gè)CARD或者指定的CARD。語(yǔ)法如下:以下為引用的內(nèi)容:《go href=”url“ sendreferer=”false|true“ method=”get|post“ accept-charset=”charset“》《postfield name=”name“ value=”value“/》《setvar name=”name“ value=”value“/》《/go》其中href屬性為必選,其他為可選。sendreferer屬性表示是否傳遞調(diào)用href所指定的URL的頁(yè)面的URL,也就是當(dāng)前頁(yè)的URL,即 HTTP 頭中的HTTP_REFERER,默認(rèn)值為false,可選值為true。method和HTML中的表單FORM的method屬性一樣,指定表單是以get的方式還是post的方式遞交,以便cgi處理,默認(rèn)的值為get,但如果未指定method但《go》《/go》間存在《postfield》,手機(jī)自動(dòng)以post方式傳遞。accept-charset 屬性可覆蓋在HTTP頭里指定的字符集,可以寫多個(gè)字符集,如accept-charset=”UTF-8,US-ASCII, ISO-8859-1“?!秔ostfield name=”name“ value=”value“/》可以看作是HTML表單FORM中的《INPUT TYPE=”HIDDEN“ NAME=”變量名“ VALUE=”值“》,通過(guò)它可以向指定的URL傳遞以“變量名/值”形式的數(shù)據(jù)。name和value屬性都是必選的。注意只有這里的變量是用來(lái)遞交給CGI程序的。除了《postfield》,還可以在《go》和《/go》間加入一句或者多句《setvar name=”name“ value=”value“/》,該語(yǔ)句的意思是,當(dāng)觸發(fā)某一事件時(shí),給變量賦值。要注意的是,當(dāng)《go》和《/go》之間沒(méi)有任何語(yǔ)句時(shí),要用《go/》的形式,這點(diǎn)比較特別,比如《anchor title=”Link1“》《go href=”test.wml“/》News《/anchor》。2)《prev》用來(lái)將當(dāng)前頁(yè)面的URL壓入U(xiǎn)RL歷史堆棧,并打開此前的URL,若該URL不存在,則《prev》無(wú)效。語(yǔ)法類似《go》:《prev》《setvar name=”name“ value=”value“/》《/prev》,《prev》和《/prev》之間可加入一句或多句《setvar name=”name“ value=”value“/》,若不加,則必須變成《prev/》的形式。3)《refresh》用來(lái)刷新當(dāng)前的頁(yè)面,從而使得頁(yè)面內(nèi)的變量刷新,語(yǔ)法為《refresh》《setvar name=”name“ value=”value“/》《/refresh》。4)《noop》,表示什么也不做,該標(biāo)簽不能用在《anchor》中,一般用在覆蓋DECK級(jí)的《do》(以后會(huì)說(shuō)明)。WML學(xué)習(xí)(五)顯示表單類似于HTML的《FORM》,《fieldset》可用來(lái)包括一組表單選項(xiàng),但不是必須的。前面說(shuō)過(guò),當(dāng)《card》的ordered設(shè)置為false時(shí),手機(jī)可以顯示一個(gè)概要CARD來(lái)總結(jié)有效的選項(xiàng),方便用戶從中選取表單選項(xiàng)來(lái)填寫,概要CARD就是根據(jù)《fieldset》和獨(dú)立的輸入框《input》以及選單《select》來(lái)總結(jié)的。語(yǔ)法為, 《fieldset title=”label“》表單內(nèi)容《/fieldset》,可選的title屬性除了可用來(lái)表示表單的名字外,還在概要CARD里作為選擇項(xiàng)的標(biāo)題。表單內(nèi)容可以是嵌套的《fieldset》,輸入框《input》,選單《select》和必要的提示文本?!秈nput name=”variable“ title=”label“ type=”type“ value=”value“ default=”default“ format=”specifier“ emptyok=”false|true“ size=”n“ maxlength=”n“ tabindex=”n“/》,用來(lái)輸入文本,除了name屬性是必要的,其他可選。*name屬性,指定了用來(lái)存儲(chǔ)該輸入文本的變量名字。*title屬性,該輸入框的名字,同樣可被用來(lái)作為概要CARD頁(yè)中的選項(xiàng)名。*type屬性,默認(rèn)值為text,如選擇password,則輸入的數(shù)據(jù)顯示為*。*value屬性,在語(yǔ)法和行為上等同于下面的default屬性,*default屬性,指定輸入框的默認(rèn)值,即name屬性指定變量的默認(rèn)值,當(dāng)用戶輸入新值時(shí),該值無(wú)效,如果該值不符合以下format屬性的規(guī)定,則手機(jī)也忽略該默認(rèn)值。*format 屬性,用來(lái)格式化輸入的數(shù)據(jù),可用的標(biāo)記如下,使用時(shí)可用“一位數(shù)字標(biāo)記”和“*標(biāo)記”的形式,前者代表N個(gè)標(biāo)記型字符,如3X, 后者代表任意個(gè)(小于maxlength屬性的值)標(biāo)記型字符。標(biāo)記 描述A 任何符號(hào)或者大寫字母(不包括數(shù)字)a 任何符號(hào)或者小寫字母(不包括數(shù)字)N 任何數(shù)字(不包括符號(hào)或者字母)X 任何符號(hào)、數(shù)字或者大寫字母(不可改變?yōu)樾懽帜福﹛ 任何符號(hào)、數(shù)字或者小寫字母(不可改變?yōu)榇髮懽帜福㎝ 任何符號(hào)、數(shù)字或者大寫字母(可改變?yōu)樾懽帜福┗蛘叨鄠€(gè)字符,默認(rèn)為首字大寫m 任何符號(hào)、數(shù)字或者小寫字母(可改變?yōu)榇髮懽帜福┗蛘叨鄠€(gè)字符,默認(rèn)為首字小寫*maxlength屬性,指定了用戶可輸入的大字符長(zhǎng)度,大限制為256個(gè)字符。*emptyok屬性,表示用戶可否不填輸入框,默認(rèn)為false,即要填。*size屬性,輸入框顯示長(zhǎng)度,目前未被支持。*tabindex屬性,類似于在HTML表單中按TAB鍵后,焦點(diǎn)落在哪個(gè)選項(xiàng)上,該值決定了這個(gè)選擇順序,數(shù)字大的排在后面。目前未被支持。test4.wml---------------以下為引用的內(nèi)容:《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《card id=”card1“ ordered=”false“》《p》USERNAME:《input name=”userName“ title=”User Name“ type=”text“ value=”YourNameHere“ format=”*M“ emptyok=”false“ maxlength=”12“ tabindex=”1“/》PASSWORD:《input name=”password“ title=”Password“ type=”password“ format=”8x“emptyok=”false“ maxlength=”8“ tabindex=”2“/》COMMENTS:《input name=”comments“ title=”comment“ type=”text“ value=”YourCommentsHere“ format=”*M“ emptyok=”true“ maxlength=”30“ tabindex=”3“/》《/p》《/card》《/wml》將上例《card》中的odered的值改為”true“試試看,然后再在《p》和《/p》內(nèi)加入《fieldset title=”field1“》和《/fieldset》試試看。《select》選單類似于HTML表單中的《SELECT》,《select》和《/select》間可包含《optgroup》和《option》標(biāo)簽,語(yǔ)法如下,所有屬性都為可選:《select title=”label“ multiple=”false|true“ name=”variable“ default=”default“ iname=”index_var“ ivalue=”default“ tabindex=” n“》《optgroup title=”label“》選單內(nèi)容《/optgroup》《option title=”label“ value=”value“ onpick=”url“》事件或者文本《/option》《/select》*title屬性,如以上《input》的title屬性。*multiple屬性,指定用戶可否進(jìn)行多項(xiàng)選擇,默認(rèn)值為false。*name屬性,用來(lái)存儲(chǔ)用戶選擇項(xiàng)的變量名,其值為 《option》標(biāo)簽的value屬性,若用戶沒(méi)有選擇又沒(méi)有用 default 屬性指定默認(rèn)值, 則手機(jī)將改變量賦值為空字符串”“,對(duì)于多項(xiàng)選擇,每個(gè)值用“;”分開。*default屬性,可為name屬性指定的變量賦默認(rèn)值。*iname屬性,用來(lái)記錄用戶選擇項(xiàng)的位置,相應(yīng)的值從 1 開始。 若沒(méi)選,則該值為0。*ivalue屬性,用來(lái)記錄默認(rèn)值所在的位置?!秓ptgroup》可用來(lái)將多個(gè)《option》分組,《optgroup》和《/optgroup》間還可包括《optgroup》和《option》,該標(biāo)簽?zāi)壳吧形幢恢С帧!秓ption》,類似于HTML中選單的《OPTION》,用來(lái)表示選單的可選項(xiàng)。《option》和《/option》間可包括事件(見下節(jié))和選單的顯示文本?!秓ption》 的屬性為可選,其中value屬性用來(lái)提供值,當(dāng)選到該項(xiàng)后,將該值賦給《select》 的name屬性所指定的變量。onpick屬性,用來(lái)指定用戶選到該項(xiàng)并按ACCEPT鍵后所打開頁(yè)面的URL。test5.wml---------------以下為引用的內(nèi)容:《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《card id=”card0“ ordered=”false“》《p》Please select a city.。.《select title=”Cities List“ name=”city“》《option title=”Beijing“ value=”c1“》Beijing《/option》《option title=”Shanghai“ value=”c2“》Shanghai《/option》《option title=”Hongkong“ value=”c3“》Hongkong《/option》《/select》Please select columns.。.《select title=”Column List“ multiple=”true“ name=”col“》《option title=”Hot News“ value=”l1“》News《/option》《option title=”Cool Sports“ value=”l2“》Sports《/option》《option title=”Pop Enter,,,“ value=”l3“》Entertainment《/option》《/select》《/p》《/card》《/wml》WML學(xué)習(xí)(六)事件WML的事件基本上分為兩大類,一類是鍵盤(包括軟硬按鈕)輸入事件,用《do》標(biāo)簽來(lái)處理,另一類是相關(guān)頁(yè)面內(nèi)部的事件,用《onevent》標(biāo)簽來(lái)處理?!禿o》的語(yǔ)法如下:《do type=”type“ label=”label“ name=”name“ optional=”false|true“》任務(wù)《/do》,任務(wù)就是以前提到的四種任務(wù)?!禿o》的屬性中,type是必選的,其他為可選。*label屬性,指定了軟按鈕在屏幕上的顯示文本。目前type屬性為delete,help,prev時(shí)該屬性無(wú)效。*name屬性,為《do》取個(gè)名字,同一的CARD里的《do》不能重名。如果CARD級(jí)的《do》和DECK級(jí)的《do》同名,則覆蓋DECK級(jí)的《do》。*optional屬性,指定手機(jī)是不是可以忽略這個(gè)事件,默認(rèn)值是false。*type屬性,指定觸發(fā)的事件,具體如下;type值 觸發(fā)原因accept 調(diào)用ACCEPT按鈕機(jī)制delete 調(diào)用DELETE按鈕機(jī)制help 調(diào)用HELP按鈕機(jī)制options 調(diào)用選擇按鈕機(jī)制prev 調(diào)用PREV按鈕機(jī)制reset 調(diào)用清除和重新設(shè)定手機(jī)狀態(tài)時(shí)的RESET機(jī)制(目前不支持)unknown 調(diào)用unknown機(jī)制,等于type=”“(目前不支持)vnd. co-type 調(diào)用廠商特定的機(jī)制(目前不支持)X-*, x-* 供以后使用(不保留)(目前不支持)test6.wml---------------以下為引用的內(nèi)容:《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《head》《meta http-equiv=”Cache-Control“ content=”max-age=0“/》《/head》《card id=”card0“ ordered=”false“》《do type=”accept“ label=”InputName“ name=”do1“》《go href=”#card01“/》《/do》《p》NAME:《input name=”userName“ title=”User Name“ type=”text“ format=”*M“ emptyok=”false“ maxlength=”12“/》《/p》《/card》《card id=”card01“》《p》You name is $(userName:noesc)?!?p》《/card》《/wml》《onevent》的語(yǔ)法如下,《onevent type=”type“》任務(wù)《/onevent》,必選屬性type的取值如下:type值 如果用戶執(zhí)行了以下操作就執(zhí)行任務(wù)onpick 用戶選擇或不選一個(gè)《option》項(xiàng)時(shí)。onenterforward 用戶使用《go》任務(wù)到達(dá)一個(gè)CARD時(shí)。onenterbackward 用戶使用《prev》任務(wù)返回到前面的CARD時(shí),或者按BACK按鈕時(shí)。ontimer 當(dāng)《timer》過(guò)期時(shí)。test7.wml---------------以下為引用的內(nèi)容:《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《head》《meta http-equiv=”Cache-Control“ content=”max-age=0“/》《/head》《card id=”card0“ ordered=”false“》《p》Please select a city.。.《select title=”Cities List“ name=”city“》《option title=”Beijing“ value=”Beijing“》《onevent type=”onpick“》《go href=”#card01“/》《/onevent》Beijing《/option》《option title=”Shanghai“ value=”Shanghai“ onpick=”#card01“》Shanghai《/option》《option title=”Hongkong“ value=”Hongkong“ onpick=”#card01“》Hongkong《/option》《/select》《/p》《/card》《card id=”card01“》《p》You are Living in $(city:noesc)《/p》《/card》《/wml》《timer/》可以用來(lái)在用戶不進(jìn)行任何操作的一段時(shí)間后,自動(dòng)執(zhí)行一個(gè)任務(wù),任何激活CARD頁(yè)面的任務(wù)和用戶操作都會(huì)啟動(dòng)《timer/》,而任務(wù)進(jìn)行時(shí),《timer/》就停止。每個(gè)CARD只能有一個(gè)《timer/》,一個(gè)《timer/》只能觸發(fā)一個(gè)任務(wù)。語(yǔ)法如下:《timer name=”variable“ value=”value“/》,其中name為可選屬性,指定為一個(gè)變量名,當(dāng)退出該CARD時(shí),該變量存儲(chǔ)此時(shí)定時(shí)器的值,當(dāng)定時(shí)器超時(shí)時(shí),手機(jī)將該變量設(shè)為0;value為必選屬性,用來(lái)設(shè)置定時(shí)器的定時(shí)值,最小單位為0.1秒。test8.wml---------------以下為引用的內(nèi)容: 《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《head》《meta http-equiv=”Cache-Control“ content=”max-age=0“/》《/head》《card id=”card1“ ontimer=”#card2“》《timer name=”time1“ value=”50“/》《p align=”center“》After 5s, goto card2《/p》《/card》《card id=”card2“》《onevent type=”ontimer“》《go href=”#card1“/》《/onevent》《timer name=”time2“ value=”50“/》《p align=”center“》Here is card2!《/p》《/card》《/wml》再提一下,《onevent》 《timer》 《do》三者必須按以上順序?qū)?。此外在DECK級(jí)還可以加入《template》,用來(lái)將事件捆綁在DECK級(jí)上,語(yǔ)法如下:《template onenterforward=”url“ onenterbackward=”url“ ontimer=”url“》《do》或者《onevent》《/template》test9.wml---------------以下為引用的內(nèi)容:《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《head》《meta http-equiv=”Cache-Control“ content=”max-age=0“/》《/head》《template》《do type=”accept“ label=”deckPress“ name=”do1“》《go href=”#card01“/》《/do》《/template》《card id=”card0“ ordered=”false“》《do type=”accept“ label=”cardPress“ name=”do1“》《go href=”#card02“/》《/do》《p》Press ACCEPT.。.《/p》《/card》《card id=”card01“》《p》Here is card01《/p》《/card》《card id=”card02“》《p》Here is card02《/p》《/card》《/wml》WML學(xué)習(xí)(七)CGI編程1)在WEB服務(wù)器上添加WML的MIME類型對(duì)于IIS4,可在其管理器里的站點(diǎn)屬性中加入新的MIME類型,后綴.wml和 MIME類型text/vnd.wap.wml。對(duì)于PWS,可修改注冊(cè)表,先在 HKEY_CLASSES_ROOT層加入主鍵.wml,再加入串值Content Type為text/vnd.wap.wml,然后在HKEY_LOCAL_MACHINESoftwareCLASSESMIMEDatabaseContent Type中加入主鍵text/vnd.wap.wml,再加入串值Extension為.wml。以前提到的HDML也用類似的方法。2)以http方式訪問(wèn)wml文件在手機(jī)瀏覽器的URL欄里輸入http://localhost/test.wml,就可以訪問(wèn)WML文件了。3)CGI設(shè)計(jì)和普通CGI變成的方式差不多,只是返回結(jié)果時(shí),先要輸出Content-Type為text/vnd.wap.wml,然后再輸出WML內(nèi)容。test10.wml---------------以下為引用的內(nèi)容:《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《head》《meta http-equiv=”Cache-Control“ content=”max-age=0“/》《/head》《card id=”card0“》《do type=”accept“ label=”Input Name“ name=”do1“》《go href=”http://localhost/test.asp“ method=”post“》《postfield name=”uid“ value=”123456“/》《postfield name=”uname“ value=”$(userName:esc)“/》《/go》《/do》《p》NAME:《input name=”userName“ title=”User Name“ type=”text“ format=”*M“ emptyok=”false“ maxlength=”12“/》《/p》《/card》test10.asp---------------《%uid=Request.Form(”uid“)userName=Request.Form(”uname“)Response.ContentType=”text/vnd.wap.wml“%》《?xml version=”1.0“?》《!DOCTYPE wml PUBLIC ”-//WAPFORUM//DTD WML 1.1//EN“ ”http://www.wapforum.org/DTD/wml_1.1.xml“》《wml》《card》《p》USERNAME:《%=userName%》USER__ID:《%=uid%》《/p》《/card》《/wml》WAP網(wǎng)站服務(wù)器配置設(shè)置APACHE WEB SERVER不管是NT 還是UNIX 或LINUX ,都是修改 Apache 安裝目錄下的conf/mime.types文件在該文件中增加以下內(nèi)容:text/vnd.wap.wml .wmlimage/vnd.wap.wbmp .wbmpapplication/vnd.wap.wmlc .wmlctext/vnd.wap.wmls .wmlsapplication/vnd.wap.wmlsc .wmlsc存盤重新啟動(dòng)APACHE WEB SERVER 即可。基于WINDOW NT平臺(tái)的IIS設(shè)置WAP SERVER只要按照以下的簡(jiǎn)單設(shè)置,就可以讓NT IIS成為WAP服務(wù)器,您可以撰寫WML網(wǎng)頁(yè)或者開發(fā)各種服務(wù)。設(shè)定方式:(先確定NT Server已經(jīng)安裝IIS了服務(wù))執(zhí)行NT操作系統(tǒng)下的【開始】/【程序】/【W(wǎng)indows NT Option Pack】/【IIS 4.0】/Internet服務(wù)管理員。在IIS服務(wù)管理員窗口內(nèi),點(diǎn)選主機(jī)電腦名稱后,按鼠標(biāo)右鍵,點(diǎn)選“屬性”選項(xiàng);在屬性窗后下部有一個(gè)文件類型按鈕,單擊此按鈕,會(huì)出現(xiàn)文件類型界面;單擊‘新增類型’按鈕,然后在相關(guān)的擴(kuò)展名欄中填寫 .wml ,在內(nèi)容類型(MIME)欄中填寫 text/vnd.wap.wml單擊‘確定’按鈕重復(fù)以上步驟將以下WML類型新增至MIME內(nèi):相關(guān)的擴(kuò)展名 內(nèi)容類型(MIME).wml text/vnd.wap.wml.wmlc application/vnd.wap.wmlc.wmls text/vnd.wap.wmlscript.wmlsc application/vnd.wap.wmlscriptc.wbmp image/vnd.wap.wbmp
新聞標(biāo)題:WAP網(wǎng)站建設(shè)(WAP網(wǎng)站制作)全攻略教程
標(biāo)題URL:http://redsoil1982.com.cn/news/168469.html
網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷seo公司;服務(wù)項(xiàng)目有網(wǎng)站制作、網(wǎng)站建設(shè)等
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容