เลือกมาจาก Blog ของ slamdunk3
1. รูปแบบไฟล์ ปัญหาแรกที่คุณต้องเจอคือรูปแบบไฟล์ เมื่อทำการพัฒนาเว็บ ทุกคนใช้ html หรือ xhtml เมื่อพูดถึงการพัฒนา wap คุณต้องใช้ wml คืออะไร คุณสามารถตรวจสอบได้ ข้อมูลโดยละเอียดเพิ่มเติม ฉันพูดถึงมันสั้น ๆ เท่านั้น ในความคิดของฉัน wml นั้นคล้ายกับ xml และมีรูปแบบที่เข้มงวดมากเมื่อ
ใช้งาน PHP สำหรับเอาต์พุตแบบไดนามิก คุณต้องส่งข้อความส่วนหัวเพื่อระบุว่าเพจนี้เป็น wml ไม่ใช่ *ml.header
("Content-type: text/vnd.wap.wml; charset=" gb2312"");
?>
ชุดอักขระที่ใช้ในที่นี้คือ gb2312 ไม่มีปัญหาบนแพลตฟอร์มมือถือ แต่จะต้องใช้ UTF-8 ไม่ได้ เพื่อให้มีความหลากหลายมากขึ้น การใช้ UTF จะปลอดภัยกว่า -8. นั่นคือ
ส่วนหัว("Content-type: text/vnd.wap.wml; charset="utf-8"");
?>
2. การเข้ารหัส
ตามที่กล่าวไว้ข้างต้น ชุดอักขระทั้งหมดควรใช้ utf-8 ซึ่งเป็นชุดอักขระที่รองรับหลายภาษา ของข้อมูลมากขึ้น ตัวอักษรจีนที่เขียนบนโทรศัพท์มือถืออาจเป็นกลุ่มตัวอักษรที่อ่านไม่ออกหลังจากแปลงรหัสหน้าเป็น utf-8 เมื่อเปิดในภายหลัง ดังนั้นในการแสดงความคิดเห็นให้ใช้ความคิดเห็นภาษาอังกฤษให้มากที่สุดเพื่อหลีกเลี่ยงปัญหาที่ไม่จำเป็น . ฉันจะไม่สามารถเข้าใจได้ในอนาคต เครื่องมือเช่น editplus และ ultraedit สามารถแปลงโค้ดภายในของไฟล์ได้
3.
เป็นเรื่องยากมากที่จะปรับตัวให้เข้ากับผู้ผลิตโทรศัพท์มือถือรายใหญ่ของโลก แปลกและสามารถรองรับได้หลากหลายรูปแบบ เช่น เสียงเรียกเข้า บางอันรองรับ 16, 32, 48 คอร์ด, รองรับ mid, wmv, บางอันรองรับได้ไม่เต็มที่; แม้จะช่วยเพิ่มเกรดและราคาของมือถือแต่ก็ยากสำหรับพี่น้องที่พัฒนามือถือเพราะจะหลีกเลี่ยงไม่ได้ที่จะจับคู่รูปภาพ ริงโทน และข้อมูลมัลติมีเดียอื่นๆ ที่มือถือสามารถทำได้ การสนับสนุน กระบวนการจับคู่นี้โดยทั่วไปเรียกว่าการปรับโทรศัพท์มือถือ
โดยทั่วไปเราต้องการข้อมูลต่อไปนี้ในการดัดแปลงโทรศัพท์มือถือ
1) เอกสารข้อมูลการปรับแต่งโทรศัพท์มือถือโดยละเอียด ซึ่งควรอธิบายรายละเอียดเกี่ยวกับเสียงเรียกเข้าและรูปแบบภาพที่โทรศัพท์มือถือสามารถรองรับได้ รวมถึงรุ่นโทรศัพท์มือถือและข้อมูลอื่นๆ
2) เพื่อให้ได้ UA ของโทรศัพท์มือถืออย่างถูกต้อง UA คืออะไร (ตัวแทนผู้ใช้) ซึ่งเป็นข้อมูลโทรศัพท์มือถือของผู้ใช้จริงๆ
เท่านั้นที่เราสามารถปรับเปลี่ยนได้นี่คือสิ่งที่ฉันเขียนไว้ใน wap คลาสที่ใช้ การพัฒนาสามารถใช้รับหมายเลขโทรศัพท์มือถือและ UA โทรศัพท์มือถือได้
/**
* ชื่อคลาส: มือถือ
* คำอธิบาย: ข้อมูลโทรศัพท์มือถือ
* อื่นๆ: เขียนโดยบังเอิญ
-
คลาสมือถือ
-
-
* ชื่อฟังก์ชัน: getPhoneNumber
* ฟังก์ชั่น : รับหมายเลขโทรศัพท์มือถือ
* พารามิเตอร์อินพุต: ไม่มี
* ค่าส่งคืนฟังก์ชัน: ส่งกลับหมายเลขหากสำเร็จ, คืนค่าเท็จหากล้มเหลว
* คำแนะนำอื่น ๆ : คำแนะนำ
-
ฟังก์ชั่น getPhoneNumber()
-
ถ้า (isset($_SERVER['HTTP_X_NETWORK_INFO']))
-
$str1 = $_SERVER['HTTP_X_NETWORK_INFO'];
$getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','',$str1);
กลับ $getstr1;
-
elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID']))
-
$getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];
กลับ $getstr2;
-
elseif (isset($_SERVER['HTTP_X_UP_SUBNO']))
-
$str3 = $_SERVER['HTTP_X_UP_SUBNO'];
$getstr3 = preg_replace('/(.*)(11[d])(.*)/i','',$str3);
กลับ $getstr3;
-
elseif (isset($_SERVER['DEVICEID']))
-
กลับ $_SERVER['DEVICEID'];
-
อื่น
-
กลับเท็จ;
-
}
/**
* ชื่อฟังก์ชัน: getHttpHeader
* ฟังก์ชั่น: รับข้อมูลส่วนหัว
* พารามิเตอร์อินพุต: ไม่มี
* ค่าส่งคืนฟังก์ชัน: ส่งกลับหมายเลขหากสำเร็จ, คืนค่าเท็จหากล้มเหลว
* คำแนะนำอื่น ๆ : คำแนะนำ
-
ฟังก์ชั่น getHttpHeader()
-
$str = '';
foreach ($_SERVER เป็น $key=>$val)
-
$gstr = str_replace("&","&",$val);
$str.= "$key -> ".$gstr."rn";
-
กลับ $str;
}
/**
* ชื่อฟังก์ชัน: getUA
* ฟังก์ชั่น: รับ UA
* พารามิเตอร์อินพุต: ไม่มี
* ค่าส่งคืนฟังก์ชัน: ส่งกลับหมายเลขหากสำเร็จ, คืนค่าเท็จหากล้มเหลว
* คำแนะนำอื่น ๆ : คำแนะนำ
-
ฟังก์ชั่น getUA()
-
ถ้า (isset($_SERVER['HTTP_USER_AGENT']))
-
ส่งคืน $_SERVER['HTTP_USER_AGENT'];
-
อื่น
-
กลับเท็จ;
-
}
/**
* ชื่อฟังก์ชัน: getPhoneType
* ฟังก์ชั่น : รับประเภทโทรศัพท์มือถือ
* พารามิเตอร์อินพุต: ไม่มี
* ค่าส่งคืนฟังก์ชัน: สตริงหากสำเร็จ, เท็จหากล้มเหลว
* คำแนะนำอื่น ๆ : คำแนะนำ
-
ฟังก์ชัน getPhoneType()
-
$ua = $this->getUA();
ถ้า($ua!=false)
-
$str = ระเบิด(' ',$ua);
กลับ $str[0];
-
อื่น
-
กลับเท็จ;
-
}
/**
* ชื่อฟังก์ชัน: isOpera
* ฟังก์ชั่น: ตรวจสอบว่าเป็นโอเปร่าหรือไม่
* พารามิเตอร์อินพุต: ไม่มี www.knowsky.com
* ค่าส่งคืนฟังก์ชัน: สตริงหากสำเร็จ, เท็จหากล้มเหลว
* คำแนะนำอื่น ๆ : คำแนะนำ
-
ฟังก์ชั่น isOpera()
-
$uainfo = $this->getUA();
ถ้า (preg_match('/.*Opera.*/i',$uainfo))
-
กลับเป็นจริง;
-
อื่น
-
กลับเท็จ;
-
}
/**
* ชื่อฟังก์ชั่น: isM3gate
* ฟังก์ชั่น: ตรวจสอบว่าเป็น m3gate หรือไม่
* พารามิเตอร์อินพุต: ไม่มี
* ค่าส่งคืนฟังก์ชัน: สตริงหากสำเร็จ, เท็จหากล้มเหลว
* คำแนะนำอื่น ๆ : คำแนะนำ
-
ฟังก์ชั่น isM3gate()
-
$uainfo = $this->getUA();
ถ้า (preg_match('/M3Gate/i',$uainfo))
-
กลับเป็นจริง;
-
อื่น
-
กลับเท็จ;
-
}
/**
* ชื่อฟังก์ชัน: getHttpAccept
* ฟังก์ชั่น: รับ HA
* พารามิเตอร์อินพุต: ไม่มี
* ค่าส่งคืนฟังก์ชัน: สตริงหากสำเร็จ, เท็จหากล้มเหลว
* คำแนะนำอื่น ๆ : คำแนะนำ
-
ฟังก์ชั่น getHttpAccept()
-
ถ้า (isset($_SERVER['HTTP_ACCEPT']))
-
กลับ $_SERVER['HTTP_ACCEPT'];
-
อื่น
-
กลับเท็จ;
-
}
/**
* ชื่อฟังก์ชัน: getIP
* ฟังก์ชั่น: รับ IP โทรศัพท์มือถือ
* พารามิเตอร์อินพุต: ไม่มี
* ค่าส่งคืนฟังก์ชัน: ส่งคืนสตริงสำเร็จ
* คำแนะนำอื่น ๆ : คำแนะนำ
-
ฟังก์ชัน getIP()
-
$ip=getenv('REMOTE_ADDR');
$ip_ = getenv('HTTP_X_FORWARDED_FOR');
ถ้า (($ip_ != "") && ($ip_ != "ไม่ทราบ"))
-
$ip=$ip_;
-
ส่งคืน $ip;
-
-
?>
4. การออกแบบเพจ
เมื่อพัฒนา wap หน้า wap นั้นเรียบง่ายมาก ไม่สามารถง่ายกว่า html ได้ ใน wap1.0 ไม่มีสิ่งที่ยุ่งเหยิงเหมือนตาราง . มันสามารถใช้สำหรับการแบ่งส่วนได้ ดังนั้นจึงเป็นเรื่องง่ายที่จะสร้างเพจ
5. Simulator
สำหรับการพัฒนา wap มันหลีกเลี่ยงไม่ได้ที่จะต้องใช้ตัวจำลองต่าง ๆ ในการทดสอบ เป็นการดีที่สุดที่จะไม่ใช้สำหรับการทดสอบ ความเข้ากันได้ดีมาก แม้ว่าจะมีข้อผิดพลาดบนหน้าเว็บ แต่ก็สามารถละเว้นได้ การทดสอบก็เหมือนกับการใช้เบราว์เซอร์เพื่อทดสอบหน้าเว็บ เพียงป้อน URL ไม่มีอะไรง่ายไปกว่านี้แล้ว
6. หมายเหตุ
1) ช่องว่าง โดยเฉพาะเมื่อกำหนด DTD
เสียงสะท้อน "";
-
หากมีช่องว่างหายไป คุณจะต้องทนทุกข์ทรมานเมื่อฉันเขียน ฉันใช้การจัดเรียงหน้าใหม่เพื่อลบช่องว่างบางส่วนออก ฉันใช้เวลาสองวันในการค้นหาข้อผิด
พลาด ) แท็ก หากไม่ได้จับคู่แท็ก ระบบจะแจ้งข้อผิดพลาด เพียงใส่ใจ ก็สามารถแก้ไขได้ง่าย