?? wap技術入門(下).txt
字號:
件,用來編輯WBMP格式的圖片,或者網絡上面有很多的工具可以轉換其他格式的圖片到WBMP格
式。
接下來我們要介紹一下運行在手機上面的script程序:WMLScript
WMLScript語言和JavaScript語言非常相似,不同之處在于WMLScrip
t語言必須放在一個WMLS的文件里面,并不像javascript那樣可以鑲嵌在HTML中,
并且WMLS文件的大小也不要超過1.4K
語法規則如下:
1、 每一行程序均以分號結尾
2、 注釋方法:“//”或者“/* */”
3、 使用關鍵字“var”來聲明變量
怎么樣?從上面我們就可看出來,WMLScript語言和javascript語言是多么的
相似,WMLScript的變量類型有:Boolean、Interger、Floatin
g-point、String、Invalid
WMLScript的流程控制語言和javascript的相同,實例如下:
// if-else
if (x == y){
x = x * 3.25;
}else{
x = 0;
}
// for loop
for (var counter = 1; counter < 500; counter ++){
var i = counter * 1.05;
somefunction(i);
};
// while loop
while (i > j){
i--;
};
// break
for (var counter = 1; counter < 500; counter ++){
var i = counter * 1.05;
if (counter == 250) break;
somefunction(i);
};
//continue
for (var counter = -100; counter < 100; counter ++){
if (counter == 0) continue;
var x = 350/counter;
};
函數:
WMLScript的函數使用方法如下:
extern function identifier(FormatParameterList) Block ;
extern是說明函數是放在另外一個文件當中的。如下:
function RunTime(distance, speed){
var time = distance / speed;
return time;
};
此例出入distance以及speed兩個參數,然后返回time的值。
如果調用的是WMLScript的內建函數,就必須加上這個函數所屬的類名,例如調用
String類的length()函數,使用:
var a = String.length('just a test');
內建函數
WMLScript有六大內建函數:
Lang:包含數據形態、絕對值、隨機數等。
Float:浮點數處理。
String:字符串長度(length)、字符位置(charAt)等字串處理。
URL:getReferer、getHost。
WMLBrowser:go、prev、next、refresh等瀏覽處理。
Dialogs:彈出(prompt、confirm、alert)等對話框。
首先我們先建立一個WML文件,WMLScriptExample.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 id="stuid" title="stuid:">
<do type="accept" label="Results">
<go href="WMLScriptExample.wmls#checkid($(stuid))"/>
</do>
<p>
Enter Stu_ID: <input type="text" name="stuid"/>
</p>
</card>
<card id="Results" title="Results:">
<p>
You entered:<br/>
Stu_ID: $(stuid)<br/>
</p>
</card>
</wml>
讓用戶輸入學號,go的href連接到另外一個.wmls文件,調用checkid函數。再建
立一個WMLScriptExample.wmls文件,內容如下:
extern function checkid(stuid){
if (String.length(stuid) != 8){
WMLBrowser.setVar("stuid", "Error: String must be 8 digits
long.");
}
WMLBrowser.go("WMLScriptExample.wml#Results");
};
這個WMLScript就是檢查stuid字串長度是否為8,并且返回結果。
WMLBrowser.setVar()設定變量的值,WMLBrowser.go()將手機定位到下一個
WML文件,也就是WMLScriptExample.wml的Results卡片。
怎么樣?WMLScript是不是很類似于javascript?簡直就是一模
一樣,就是多了和WML文件相配合的功能而已。
最后需要指出的是,現在的大多數WAP手機(Nokia7110、愛立信R32
0S等等)都是使用UTF-8編碼的,也就是采用Uniecode來編碼,這樣,如
果我們直接在WML/WMLScript中使用中文的話,將會產生亂碼,手機用戶無
法識別,所以我們在輸出中文之前,要對中文進行Uniecode的編碼,這個工作就
要服務器端的程序來完成了,比如我們使用ASP來做這項工作,可以調用這個函數實現
轉換,其他語言的實現方法類似:
Function c2u(myText)
For i = 1 to Len(myText) ' 對每一個字節進行處理
c = Mid(myText, i, 1)
c2u = c2u & "&#x" & Hex(AscW(c)) & ";"
' 將傳回的Unicode轉換為十六進制值
next
End Function
實現的例子如下:(chinese.asp)
<% Response.ContentType="text/vnd.wap.wml;charset=UTF-8"
%>
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">
<%
Function c2u(myText)
For i = 1 to Len(myText)
c = Mid(myText, i, 1)
c2u = c2u & "&#x" & Hex(AscW(c)) & ";"
next
End Function
%>
<wml>
<card id="card1" title="UTF8">
<p>
<%=c2u("IT的事找賽迪網!!")%><br/>
</p>
</card>
</wml>
在諾基亞的仿真手機中瀏覽這個ASP文件,就可以看到中文了!
結束語
我們通過上面的介紹,也可以大致了解一下WAP技術的來龍去脈了,相信通過你自
己的不斷實踐,一定能夠駕馭它的。其實WML和HTML一樣屬于一個靜態的頁面,要
想真正建設吸引用戶的WAP站點,不光要僅僅依靠WML本身,還要配合各種運行在服
務器端的程序,比如ASP、PHP、JSP、CGI等等來實現豐富多彩的動態WAP
網站,這就是后話了,暫且不談。隨著國內的WAP技術大環境的越來越完善,將會有更
多的網站、ISP等投入到這場搶奪市場的戰斗中來,相信WAP技術的可移動性和簡易
操作性將會吸引越來越多的用戶投身到廣闊的無線網絡中,對于我們WEB開發人員來
講,掌握了WAP就掌握了未來!
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -