ASP代碼可以在模擬器上工作,在真正的瀏覽器上怎么不行?
在很多模擬器上沒有像真正的WML瀏覽器那么嚴(yán)格。這些對于那些沒有使用網(wǎng)關(guān)的模擬器(Nokia SDK/Toolkit)來說更是這樣,有些就根本沒有使用網(wǎng)關(guān)(WinWAP、WapMAN)。
一個(gè)真正的WML瀏覽器應(yīng)該只讀取二進(jìn)制的數(shù)據(jù)(從WML編碼得來的)WMLC,對于網(wǎng)關(guān)應(yīng)該將文本W(wǎng)ML轉(zhuǎn)換/編譯成WMLC。語法是非常嚴(yán)格的。ASP是為HTML瀏覽器設(shè)置的,但是HTML沒有WML那么嚴(yán)格。
這里在ASP生成動態(tài)頁面的時(shí)候有一個(gè)微小的“bug”。它在WML瀏覽器上不允許有任何地方輸出白行(例如:空格,回車,換行)。注意到有些網(wǎng)關(guān)可能會修正這些問題,但有的則不管(例如:CMG網(wǎng)關(guān))。
如何使用Perl來生成WML內(nèi)容?
和其他Server端程序一樣。Perl也可以用來書寫漂亮的WAP應(yīng)用程序。
最常見的就是如何使用Perl輸出正確的MIME類型,下面的例子說明了這一點(diǎn):
print "Content-type: text/vnd.wap.wmlnn";
print "n";
print "
"http://www.wapforum.org/DTD/wml_1.1.xml">n";
print "n";
……
應(yīng)當(dāng)如何下手書寫WAP應(yīng)用程序?
其實(shí)需要的只是Text編輯器。但是使用一個(gè)開發(fā)工具可以節(jié)約很多時(shí)間。
在這之前應(yīng)該瀏覽一下WAP的權(quán)威站點(diǎn):www.wapforum.com。
在Nokia WAP 開發(fā)論壇中進(jìn)行注冊,并且下載Nokia WAP Developer Toolkit 。Toolkit中的PDF文件可以給出一定的WML和WMLScript指導(dǎo)。Nokia Toolkit需要JRE (Java Runtime Environment) v.1.2.2 或者更高版本。
雖然工具可以用來為WAP設(shè)備設(shè)計(jì)應(yīng)用,但是不是為專門的移動電話。在WAP開發(fā)工具上所看到的并不代表用戶在手機(jī)上所看到的。為了確定想看到的事情,最好需要一個(gè)WAP設(shè)備,例如移動電話,或者模擬器。
Nokia WAP SDK 2有一個(gè)7110的模擬器。模擬器是一個(gè)有效的檢測方式,能檢測程序中的bug。 Nokia SDK 同樣還包括一個(gè)小的WAP server讓開發(fā)者可以從本地或者HTTP服務(wù)器上下載WML頁面。
到 Phone.com 開發(fā)站點(diǎn)注冊后,Phone.com 提供UP.browser。這是最流行的瀏覽器,特別是在美國,Phone.com 提供UP.SDK。 在注冊之后就可以下載。
對于Ericsson R320 和 R380是最近的事情。應(yīng)該注冊并查看Ericsson's Developer's Zone 來得到開發(fā)工具。R380是一個(gè)非常好的模擬器,在 Symbian 不需要注冊就可以下載。Ericsson 沒有公開的為R320的模擬器。
Motorola 有一個(gè)平臺叫做 Mobile Internet eXchange 或者 MIX 。Mobile Application Development Kit 已經(jīng)開發(fā)出一個(gè)開發(fā)平臺,即為WAP也為Motorola的 VoxML。在注冊后,可以在下面的網(wǎng)址找到數(shù)據(jù)包。
http://www.motorola.com/MIMS/MSPG/cgi-bin/spn_madk.cgi.
WAPmine 是一個(gè)獨(dú)立的應(yīng)用,叫做 WAPPage 是一個(gè)所見即所得的編輯工具。而且有一個(gè)XML樹型控件來編輯WML標(biāo)簽。
如果在開發(fā)公共應(yīng)用程序時(shí),想在很多設(shè)備上測試你的程序,就像在不同的瀏覽器上測試HTML頁面一樣。注意在不同的WML瀏覽器上的差別,可能比在不同的HTML瀏覽器上的差別要大。
如何編寫和測試WML頁面?
現(xiàn)在有很多SDK。AnywhereYouGo.com有WAP SDK和IDE列表,可以下載一個(gè)來用。任何文本編輯器都可以書寫一個(gè)簡單的WML頁面,當(dāng)然HTML編輯器也可以(特別是那些支持個(gè)人定義標(biāo)簽的),例如:Allaire Homesite (http://www.allaire.com )??梢允褂肧DK來做簡單的測試,但是對于大的項(xiàng)目可能要困難些。AnywhereYouGo.com已經(jīng)建立一套基于Web的工具來幫助WAP測試。
哪兒可以在找到WML的測試工具?
首先確定WML代碼是正確的,然后再使用WML測試工具。
有一個(gè)非常好的測試工具在Zygo Communications(http://wap.z-y-g-o.com/tools/),測試工具是用Perl寫的。里面還有其他的工具可供下載。
如何操作WML頁面?
操作WML頁面或者卡片,最簡單的辦法是通過現(xiàn)有的網(wǎng)關(guān)。大多數(shù)移動電話提供者將功能都放在主頁上,在上面可以通過WAP設(shè)備操作。網(wǎng)關(guān)的鏈接一般叫做“Go to URL”。當(dāng)選擇以后,WAP設(shè)備將通過網(wǎng)關(guān)操作指定的普通IP或者URL。在這種情況下,網(wǎng)關(guān)讀取從WAP設(shè)備發(fā)送給網(wǎng)關(guān)的WML內(nèi)容,就像PC瀏覽器讀取內(nèi)容的過程一樣。
有些營運(yùn)商選擇不讓他們的用戶操作其他的站點(diǎn)。這個(gè)就像Internet Service Provider只允許用戶操作ISP自己的站點(diǎn)。像這樣的做法是不明智的,這樣會發(fā)現(xiàn)自己的用戶去其他地方了。
如果要堅(jiān)持這種方法,可以通過ISP撥號或者使用一個(gè)公共的網(wǎng)關(guān)來取得其他的WAP資源。
有沒有一個(gè)友好的方式來管理WML內(nèi)容?
還沒有。雖然Oracale正在開發(fā)數(shù)據(jù)庫驅(qū)動的文檔服務(wù),被稱為Panama,可以支持WAP分發(fā)。
如果用戶使用ASP,應(yīng)該加入一行 ,這個(gè)將阻止Cache。
怎樣防止從Cache中讀取WML頁面?
當(dāng)WML頁面下載到WAP設(shè)備后,它將保存在WAP設(shè)備內(nèi)存中一段時(shí)間,直到這個(gè)時(shí)間過期。在這之后,頁面將從服務(wù)器下載,而不是從WAP設(shè)備的緩存讀取。這個(gè)過程被稱做Cache。
但是有些時(shí)候不想讓頁面從緩存中讀取,而是從服務(wù)器端讀取。一個(gè)典型的例子就是當(dāng)服務(wù)器的內(nèi)容不斷在更新的時(shí)候,通過在HTTP頭中加入一定的cache信息,來告訴WAP設(shè)備該頁面將不存儲在緩存中。