1.文件格式
首先要碰到的問題肯定是文件格式,在作web開發時,大家都是用的html或xhtml,到了wap開發時,就得用wml了.什么是wml?大家可以去查更具體的資料,我這里只是略微的提到.在我看來wml類似于xml,有非常嚴格的格式,在作wap頁面時,都得用wml來作為顯示.
wml的語法非常簡單,在用php作動態輸出時,一定要發送一個頭信息,標明本頁面是wml,而不是別的什么*ml.
- header("Content-type: text/vnd.wap.wml; charset="gb2312"");
這里用的字符集是gb2312,在移動的平臺上是沒有任何問題的,但在聯通的平臺上就不行了,一定得用utf-8,為了更通用,還是用utf-8更安全.即
- header("Content-type: text/vnd.wap.wml; charset="utf-8"");
2.編碼
上面說了字符集都應采用utf-8,這是一種容納了多國語言的字符集,一個漢字是占雙字節,utf-8占了4個字節,因此其容納的信息量更大.在手機上編寫的漢字,在將頁面內碼轉成utf-8后,以后再打開就可能是一堆亂碼.因此大家在作注釋時,盡可能的用英文注釋,省得以后看不懂.像editplus,ultraedit等工具都可以轉文件內碼.
3.適配
世界各大手機廠商真是有病,開發出的手機千奇百怪,可以支持的格式也是五花八門.比如鈴聲,有的可以支持,16,32,48和弦,支持mid,wmv,有的不完全支持;有的支持gif,png,bmp,有的也不完全支持.這雖然是把手機的檔次和成本拉開了,但卻苦了作手機開發的兄弟們了.因為不可避免的要對手機所能支持的圖片,鈴聲等多媒體信息作出一個匹配,這個匹配的處理,我們一般叫做手機適配.
要作手機適配,我們一般得有如下資料.
1)一份具體的手機適配資料表,里面應具體的說明手機所能支持的鈴聲,圖片格式,還得有手機型號等信息
2)要正確的獲取手機的UA,什么是UA,就是(user agent),實際上就是用戶的手機信息.
有了上面的東東我們才能做出適配.以下給出一個我寫的在wap開發中用到的類,可以用來取手機號,手機UA.
- /**
- * 類名: mobile
- * 描述: 手機信息類
- * 其他: 偶然 編寫
- */
- class mobile
- {
- /**
- * 函數名稱: getPhoneNumber
- * 函數功能: 取手機號
- * 輸入參數: none
- * 函數返回值: 成功返回號碼,失敗返回false
- * 其它說明: 說明
- */
- function getPhoneNumber()
- {
- if (isset($_SERVER['HTTP_X_NETWORK_INFO']))
- {
- $str1 = $_SERVER['HTTP_X_NETWORK_INFO'];
- $getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','',$str1);
- Return $getstr1;
- }
- elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID']))
- {
- $getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];
- Return $getstr2;
- }
- elseif (isset($_SERVER['HTTP_X_UP_SUBNO']))
- {
- $str3 = $_SERVER['HTTP_X_UP_SUBNO'];
- $getstr3 = preg_replace('/(.*)(11[d])(.*)/i','',$str3);
- Return $getstr3;
- }
- elseif (isset($_SERVER['DEVICEID']))
- {
- Return $_SERVER['DEVICEID'];
- }
- else
- {
- Return false;
- }
- }
- /**
- * 函數名稱: getHttpHeader
- * 函數功能: 取頭信息
新聞熱點
疑難解答