Sélectionné sur le blog de slamdunk3
1. Format de fichier Le premier problème que vous devez rencontrer est le format de fichier Lorsque vous faites du développement Web, tout le monde utilise du HTML ou du Xhtml. Lorsqu'il s'agit de développement wap, vous devez utiliser wml. des informations plus détaillées. Je ne l'ai mentionné que brièvement ici. À mon avis, wml est similaire à XML et a un format très strict, vous devez utiliser wml pour l'affichage
. PHP pour une sortie dynamique, vous devez envoyer un message d'en-tête pour indiquer que cette page est wml, pas un autre *ml
header("Content-type: text/vnd.wap.wml; charset=" gb2312"");
?>
Le jeu de caractères utilisé ici est gb2312. Il n'y a aucun problème sur la plateforme mobile, mais il ne fonctionnera pas sur la plateforme China Unicom. Il faut utiliser UTF pour être plus polyvalent. -8. C'est
header("Content-type: text/vnd.wap.wml; charset="utf-8"");
?>
2. Encodage
Comme mentionné ci-dessus, le jeu de caractères doit tous utiliser utf-8. Il s'agit d'un jeu de caractères qui prend en charge plusieurs langues. Un caractère chinois occupe deux octets et utf-8 occupe 4 octets, il peut donc contenir le montant. La quantité d'informations est plus grande. Les caractères chinois écrits sur le téléphone mobile peuvent être un tas de caractères tronqués après la conversion du code de la page en utf-8 lors de son ouverture ultérieure. Par conséquent, lorsque vous faites des commentaires, utilisez autant que possible les commentaires en anglais pour éviter des problèmes inutiles. .Je ne pourrai pas le comprendre à l'avenir. Des outils tels que editplus et ultraedit peuvent convertir le code interne des fichiers.
3. Il
est vraiment difficile de s'adapter aux principaux fabricants de téléphones portables mondiaux. Les téléphones portables développés sont de toutes sortes. de bizarre et peut prendre en charge une variété de formats. Par exemple, les sonneries, certaines peuvent prendre en charge 16, 32, 48 accords, prendre en charge mid, wmv, certaines ne le prennent pas entièrement en charge ; le soutenir. Bien que cela augmente la qualité et le coût des téléphones mobiles, mais c'est difficile pour les frères qui sont engagés dans le développement de téléphones mobiles, car il est inévitable de faire correspondre les images, les sonneries et autres informations multimédias que le téléphone mobile peut. support. Ce processus de mise en correspondance est généralement appelé adaptation du téléphone mobile.
Pour effectuer une adaptation de téléphone mobile, nous avons généralement besoin des informations suivantes :
1) Une fiche technique détaillée d'adaptation de téléphone mobile, qui doit décrire en détail les sonneries et les formats d'image que le téléphone mobile peut prendre en charge, ainsi que le modèle de téléphone mobile et d'autres informations.
2) Pour obtenir correctement l'UA du téléphone mobile, qu'est-ce qu'un UA (agent utilisateur), qui est en fait les informations du téléphone mobile de l'utilisateur.
Ce n'est qu'avec ce qui précède que nous pouvons faire des adaptations. En voici une que j'ai écrite sur wap Les classes utilisées. le développement peut être utilisé pour obtenir des numéros de téléphone mobile et des UA de téléphone mobile
/**
.
* Nom de la classe : mobile
* Description : informations sur le téléphone portable
*Autres : Écrit par hasard
*/
mobile de classe
{
/**
* Nom de la fonction : getPhoneNumber
* Fonction : obtenir un numéro de téléphone portable
* Paramètres d'entrée : aucun
* Valeur de retour de la fonction : renvoie le numéro en cas de succès, false en cas d'échec
*Autres instructions : instructions
*/
fonction getPhoneNumber()
{
si (isset($_SERVER['HTTP_X_NETWORK_INFO']))
{
$str1 = $_SERVER['HTTP_X_NETWORK_INFO'];
$getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','',$str1);
Renvoie $getstr1 ;
}
elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID']))
{
$getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];
Renvoie $getstr2 ;
}
elseif (isset($_SERVER['HTTP_X_UP_SUBNO']))
{
$str3 = $_SERVER['HTTP_X_UP_SUBNO'];
$getstr3 = preg_replace('/(.*)(11[d])(.*)/i','',$str3);
Renvoie $getstr3;
}
elseif (isset($_SERVER['DEVICEID']))
{
Renvoie $_SERVER['DEVICEID'];
}
autre
{
Renvoie faux ;
}
}
/**
* Nom de la fonction : getHttpHeader
* Fonction : obtenir des informations d'en-tête
* Paramètres d'entrée : aucun
* Valeur de retour de la fonction : renvoie le numéro en cas de succès, false en cas d'échec
*Autres instructions : instructions
*/
fonction getHttpHeader()
{
$str = '';
foreach ($_SERVER comme $key=>$val)
{
$gstr = str_replace("&","&",$val);
$str.= "$key -> ".$gstr."rn";
}
Renvoie $str;
}
/**
* Nom de la fonction : getUA
* Fonction : Obtenir UA
* Paramètres d'entrée : aucun
* Valeur de retour de la fonction : renvoie le numéro en cas de succès, false en cas d'échec
*Autres instructions : instructions
*/
fonction getUA()
{
si (isset($_SERVER['HTTP_USER_AGENT']))
{
Renvoie $_SERVER['HTTP_USER_AGENT'] ;
}
autre
{
Renvoie faux ;
}
}
/**
* Nom de la fonction : getPhoneType
* Fonction : Obtenez le type de téléphone mobile
* Paramètres d'entrée : aucun
* Valeur de retour de la fonction : chaîne en cas de succès, false en cas d'échec
*Autres instructions : instructions
*/
fonction getPhoneType()
{
$ua = $this->getUA();
si($ua!=faux)
{
$str = exploser(' ',$ua);
Renvoie $str[0] ;
}
autre
{
Renvoie faux ;
}
}
/**
* Nom de la fonction : isOpera
* Fonction : déterminer s'il s'agit d'un opéra
* Paramètres d'entrée : aucun www.knowsky.com
* Valeur de retour de la fonction : chaîne en cas de succès, false en cas d'échec
*Autres instructions : instructions
*/
fonction isOpera()
{
$uainfo = $this->getUA();
if (preg_match('/.*Opera.*/i',$uainfo))
{
Renvoie vrai ;
}
autre
{
Renvoie faux ;
}
}
/**
* Nom de la fonction : isM3gate
* Fonction : Déterminer s'il s'agit de m3gate
* Paramètres d'entrée : aucun
* Valeur de retour de la fonction : chaîne en cas de succès, false en cas d'échec
*Autres instructions : instructions
*/
fonction isM3gate()
{
$uainfo = $this->getUA();
si (preg_match('/M3Gate/i',$uainfo))
{
Renvoie vrai ;
}
autre
{
Renvoie faux ;
}
}
/**
* Nom de la fonction : getHttpAccept
* Fonction : Obtenir HA
* Paramètres d'entrée : aucun
* Valeur de retour de la fonction : chaîne en cas de succès, false en cas d'échec
*Autres instructions : instructions
*/
fonction getHttpAccept()
{
si (isset($_SERVER['HTTP_ACCEPT']))
{
Renvoie $_SERVER['HTTP_ACCEPT'];
}
autre
{
Renvoie faux ;
}
}
/**
* Nom de la fonction : getIP
* Fonction : obtenir l'IP du téléphone mobile
* Paramètres d'entrée : aucun
* Valeur de retour de la fonction : chaîne renvoyée avec succès
*Autres instructions : instructions
*/
fonction getIP()
{
$ip=getenv('REMOTE_ADDR');
$ip_ = getenv('HTTP_X_FORWARDED_FOR');
si (($ip_ != "") && ($ip_ != "inconnu"))
{
$ip=$ip_;
}
retourner $ip ;
}
}
?>
4. Conception de la page
Lors du développement d'un wap, la page wap est très simple. Elle ne peut pas être plus simple que du HTML. Dans wap1.0, il n'y a pas de choses compliquées comme les tableaux. Toutes les balises sont écrites dans une balise appelée card. Il peut être utilisé pour la segmentation. Il est donc facile de créer des pages.
5. Simulateur
Pour le développement de wap, il est inévitable d'utiliser divers simulateurs pour les tests. Le meilleur est m3gate, openwave, opera et celui appelé winwap It. Il est préférable de ne pas l'utiliser pour des tests. Sa compatibilité est si bonne que même s'il y a des erreurs sur la page, elles peuvent être ignorées. Le test est le même que l'utilisation d'un navigateur pour tester une page Web, il suffit de saisir l'URL. Il n'y a rien de plus simple que cela.
6. Notes
1) Les espaces, surtout lors de la définition d'une DTD,
écho "" ;
?>
S'il manque des espaces quelque part, vous en souffrirez. Lorsque j'écrivais, j'ai utilisé le réarrangement des pages pour supprimer certains espaces. Il m'a fallu deux jours pour trouver l'erreur. Veuillez ne pas suivre mon exemple
. ) Balises, si les balises ne sont pas appariées, une erreur sera affichée. Faites simplement attention, c'est facile à corriger.