一、 WAP服務(wù)器的架設
要讓W(xué)AP成為手機和計算機交流的媒介,必選先建立一個(gè)WAP服務(wù)器。該服務(wù)器必須擁有獨立的IP地址,建議擁有獨立的域名,避免更改IP地址的麻煩,我使用的是花生殼動(dòng)態(tài)域名解析服務(wù)。
我所使用的服務(wù)器軟件是微軟的IIS6.0,操作系統是Microsoft Windows Server 2003。
在IIS平臺創(chuàng )建一個(gè)新的MIME類(lèi)型。先選擇WAP站點(diǎn)的屬性,然后選擇“HTTP頭”標簽。在“MIME類(lèi)型”部分,點(diǎn)擊“MIME類(lèi)型”并且新建以下信息:
| 擴展名 | MIME 類(lèi)型 |
| Wml | text/vnd.wap.wml |
| Wmlc | application/vnd.wap.wmlc |
| Wbmp | image/vnd.wap.wbmp |
| wmlsc | application/vnd.wap.wmlscriptc |
| Wmls | text/vnd.wap.wmlscript |
| Wsc | application/vnd.wap/wmlscriptc |
完成以后,將會(huì )顯示以下幾種類(lèi)型:

現在,你就可以把你的網(wǎng)站內容加到站點(diǎn)文件夾里面了。
二、 WML語(yǔ)言
WML(Wireless Markup Language)是用于WAP的標記語(yǔ)言。WML頁(yè)面文件的后綴是 *.WML,就象HTML的 *.HTML后綴。XML規定定義了一個(gè)規范的XML文件的規格。任何違反這個(gè)規定的WML文件會(huì )出錯。WML文件通常使用XML解釋器起來(lái)解釋。
1、XML程序的基本結構
一個(gè)完整的WML語(yǔ)言教程需要好幾十頁(yè),這些教程可以在網(wǎng)上找到,這里只大致介紹一些必要的知識。我們首先從一個(gè)簡(jiǎn)單的頁(yè)面開(kāi)始。
| <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.com/DTD/wml_1.1.xml"> <wml> <card title="Fenghao"> <p>I‘m fenghao</p> </card> </wml> |
此程序在手機上顯示“I‘m fenghao”。
WML語(yǔ)言是一個(gè)很?chē)栏竦?,哪怕一點(diǎn)不同都會(huì )導致錯誤。所有的WML程序必須在文件的開(kāi)頭處聲明XML文件類(lèi)型,包括XML的版本,WML的文檔類(lèi)型、所用規范等。聲明形式如下:
| <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.com/DTD/wml_1.1.xml"> |
WML文檔是由“卡片(Card)”和“卡片組(Deck)”構成的,一個(gè)Deck是一個(gè)或多個(gè)Card的集合。當客戶(hù)端發(fā)出請求之后,WML即從網(wǎng)絡(luò )上把Deck發(fā)送到客戶(hù)瀏覽器,這是用戶(hù)就可以瀏覽Deck內包含的所有Card,而不必從網(wǎng)上單獨下載每一個(gè)Card,程序中的第一個(gè)Card是缺省得可見(jiàn)的Card。
<xml>標簽:該標簽用于包含和定義WML的一個(gè)Deck。它有一個(gè)可選的xml:lang屬性來(lái)制定文檔的語(yǔ)言,比如<wml xml:lang="zh">表示文檔語(yǔ)言為中文。
<card>標簽:WML均使用<card>和</card>進(jìn)行包含和定義。 <card>同時(shí)可以包含多個(gè)可選的屬性,
如:
card id="name" title="label" newcontext="false" ordered="true" onenterforwand="url" pmemterbackward="url" ontimer="url">。
2、WAP網(wǎng)頁(yè)的建設
以下的程序放在網(wǎng)站的首頁(yè)上,名字是index.wml,手機WAP瀏覽器將訪(fǎng)問(wèn)者個(gè)網(wǎng)頁(yè),并要求用戶(hù)輸入執行操作的代碼,讓后將這個(gè)代碼傳送給resquest.asp。
| <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <!-- Possible <head> element here. --> <head> <meta forua="true" http-equiv="Cache-Control" content="max-age=0"/> <meta forua="true" http-equiv="Cache-Control" content="must-revalidate"/> </head> <template> <!-- Template implementation here. --> <do type="prev"><prev/></do> </template> <card id="card1" title="wap" newcontext="true"> <p> <b>code:</b><br/> <input name="SID" size="10" maxlength="50" type="text" format="*N" emptyok="true"/><br/> <br/> <anchor title="login"> <go href="request.asp" method="post"> <postfield name="code" value="$SID"/> </go>Implement!<br/> </anchor> </p> </card> </wml> |
其中,go主要用來(lái)定義瀏覽器需要導航的URL地址。語(yǔ)句<go href="request.asp"method="post">中,href屬性用于指定目標URL地址;method屬性用于指定表單是以GET的方式還是post的方式遞交Postfield通過(guò)URL申請向ASP交換數據。<postfield name="code"value="$SID"/>中,name屬性用于指定傳輸域的名稱(chēng),value屬性用于定義傳輸的值。這兩個(gè)屬性均為必選屬性。
這里給大家一個(gè)建議,現在在網(wǎng)上有不少WML瀏覽器,例如WinWAP,這些瀏覽器有的時(shí)候是不嚴格的,有些網(wǎng)頁(yè)在WinWAP上可以瀏覽,可在手機上偏偏不行,往往是因為一些細微的差錯。所以在調試的時(shí)候注意手機和WML瀏覽器的配合,避免在手機上無(wú)法執行時(shí)無(wú)從下手。
三、 服務(wù)器端
request.asp是響應手機請求的服務(wù)器端程序,它獲得用戶(hù)輸入的操作代碼,讓后將這個(gè)代碼寫(xiě)入一個(gè)文本文件。
| <%@ Language=VBScript %> <%Response.ContentType="text/vnd.wap.wml" code=Request.Form("code") filename="e:\code.txt" Set fs = CreateObject("Scripting.FileSystemObject") set ss = fs.CreateTextFile(filename,true) ss.Write(code) ss.Close%><?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="main"> <p> Complete!!! </p> </card> </wml> |
程序讀取e:\code.txt存入變量Lstr,然后將0寫(xiě)入文本文件(規定0不代表任何操作,避免程序重復執行同一操作)。最后通過(guò)判斷Lstr內容來(lái)決定進(jìn)行什么操作,此處,利用API函數ExitWindowsEx強行關(guān)機(在不同的操作系統中,此API函數有不同的效果,不如在Win9x環(huán)境下可以執行關(guān)機,重新啟動(dòng)等操作,而在我的Windows2003 Server環(huán)境下,只能實(shí)現注銷(xiāo),如果將ExitWindowsEx第二個(gè)參數設置其他的常量如EWX_REBOOT則不會(huì )有任何效果)。
當然,遙控計算機不僅僅是要關(guān)機、重新啟動(dòng),更多的功能還等待去開(kāi)發(fā)!
好了一切都準備就緒,現在開(kāi)啟你的服務(wù)器,拿出手機,玩一把手機遙控的計算機!
![]() | ![]() |
![]() |
調試環(huán)境:
操作系統:Windows 2003 Enterprice Server
開(kāi)發(fā)環(huán)境:Visual Basic 6.0
手機:PHILIPS Fisio 620 Openwave Mobile Browser 5.0.1.11 WAP Edition
運營(yíng)商:中國移動(dòng)(動(dòng)感地帶) 中國網(wǎng)通LAN寬帶
域名解析:花生殼2.0




