Selecionado no Blog do slamdunk3
1. Formato do arquivo O primeiro problema que você deve encontrar é o formato do arquivo. Ao fazer desenvolvimento web, todo mundo usa html ou xhtml. Quando se trata de desenvolvimento wap, você deve usar wml. informações mais detalhadas. Mencionei isso brevemente aqui. Na minha opinião, wml é semelhante ao xml e tem um formato muito rígido. Ao fazer páginas wap, você deve usar wml para exibição
. PHP para saída dinâmica, você deve enviar uma mensagem de cabeçalho para indicar que esta página é wml, e não algum outro *ml
header("Content-type: text/vnd.wap.wml; charset=" gb2312"");
?>
O conjunto de caracteres usado aqui é gb2312. Não há problema na plataforma móvel, mas não funcionará na plataforma China Unicom. Para ser mais versátil, é necessário usar UTF. -8. Isso é
header("Tipo de conteúdo: text/vnd.wap.wml; charset="utf-8"");
?>
2. Codificação
Como mencionado acima, todos os conjuntos de caracteres devem usar utf-8. Este é um conjunto de caracteres que acomoda vários idiomas. Um caractere chinês ocupa dois bytes e utf-8 ocupa 4 bytes, para que possa acomodar a quantidade. O número de informações é maior. Os caracteres chineses escritos no telefone celular podem ser um monte de caracteres ilegíveis depois que o código da página for convertido para utf-8 quando aberto posteriormente. Portanto, ao fazer comentários, use os comentários em inglês tanto quanto possível para evitar problemas desnecessários. .Não serei capaz de entendê-lo no futuro. Ferramentas como editplus e ultraedit podem converter o código interno dos arquivos
3.
É realmente difícil se adaptar aos principais fabricantes de telefones celulares do mundo. de estranho e pode suportar uma variedade de formatos, por exemplo, toques, alguns suportam 16, 32, 48 acordes, suportam mid, wmv, alguns não suportam totalmente; apoiá-lo. Embora isso aumente a qualidade e o custo dos telefones celulares, mas é difícil para os irmãos que estão envolvidos no desenvolvimento de telefones celulares. Porque é inevitável combinar as imagens, toques e outras informações multimídia que o telefone celular pode. suporte. Este processo de correspondência é geralmente chamado de adaptação do telefone móvel.
Para fazer a adaptação do telemóvel, geralmente necessitamos das seguintes informações:
1) Uma ficha técnica detalhada de adaptação do telemóvel, que deve descrever detalhadamente os toques e formatos de imagem que o telemóvel pode suportar, bem como o modelo do telemóvel e outras informações.
2) Para obter corretamente o UA do celular, o que é UA é (agente do usuário), que na verdade é a informação do celular do usuário.
Somente com o acima podemos fazer adaptações. Aqui está uma que escrevi no wap As classes usadas no. o desenvolvimento pode ser usado para obter números de telefone celular e UA de telefone celular
/**
.
* Nome da classe: celular
* Descrição: Informações do celular
* Outros: Escrito por acaso
*/
classe móvel
{
/**
* Nome da função: getPhoneNumber
* Função: Obter número de celular
* Parâmetros de entrada: nenhum
* Valor de retorno da função: retorna o número se for bem-sucedido, falso se falhar
* Outras instruções: instruções
*/
função getPhoneNumber()
{
if (isset($_SERVER['HTTP_X_NETWORK_INFO']))
{
$str1 = $_SERVER['HTTP_X_NETWORK_INFO'];
$getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','',$str1);
Retornar $getstr1;
}
elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID']))
{
$getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];
Retornar $getstr2;
}
elseif (isset($_SERVER['HTTP_X_UP_SUBNO']))
{
$str3 = $_SERVER['HTTP_X_UP_SUBNO'];
$getstr3 = preg_replace('/(.*)(11[d])(.*)/i','',$str3);
Retornar $getstr3;
}
elseif (isset($_SERVER['DEVICEID']))
{
Retornar $_SERVER['DEVICEID'];
}
outro
{
Retornar falso;
}
}
/**
* Nome da função: getHttpHeader
* Função: obter informações do cabeçalho
* Parâmetros de entrada: nenhum
* Valor de retorno da função: retorna o número se for bem-sucedido, falso se falhar
* Outras instruções: instruções
*/
função getHttpHeader()
{
$str = '';
foreach ($_SERVER como $key=>$val)
{
$gstr = str_replace("&","&",$val);
$str.= "$chave -> ".$gstr."rn";
}
Retornar $str;
}
/**
* Nome da função: getUA
* Função: Obter UA
* Parâmetros de entrada: nenhum
* Valor de retorno da função: retorna o número se for bem-sucedido, falso se falhar
* Outras instruções: instruções
*/
função getUA()
{
if (isset($_SERVER['HTTP_USER_AGENT']))
{
Retornar $_SERVER['HTTP_USER_AGENT'];
}
outro
{
Retornar falso;
}
}
/**
* Nome da função: getPhoneType
* Função: Obtenha o tipo de telefone celular
* Parâmetros de entrada: nenhum
* Valor de retorno da função: string se for bem-sucedida, false se falhar
* Outras instruções: instruções
*/
função getPhoneType()
{
$ua = $this->getUA();
if($ua!=falso)
{
$str = explodir(' ',$ua);
Retornar $str[0];
}
outro
{
Retornar falso;
}
}
/**
* Nome da função: isOpera
* Função: Determine se é ópera
* Parâmetros de entrada: nenhum www.knowsky.com
* Valor de retorno da função: string se for bem-sucedida, false se falhar
* Outras instruções: instruções
*/
função éOpera()
{
$uainfo = $this->getUA();
if (preg_match('/.*Opera.*/i',$uainfo))
{
Retorne verdadeiro;
}
outro
{
Retornar falso;
}
}
/**
* Nome da função: isM3gate
* Função: Determine se é m3gate
* Parâmetros de entrada: nenhum
* Valor de retorno da função: string se for bem-sucedida, false se falhar
* Outras instruções: instruções
*/
função éM3gate()
{
$uainfo = $this->getUA();
if (preg_match('/M3Gate/i',$uainfo))
{
Retorne verdadeiro;
}
outro
{
Retornar falso;
}
}
/**
* Nome da função: getHttpAccept
* Função: Obter HA
* Parâmetros de entrada: nenhum
* Valor de retorno da função: string se for bem-sucedida, false se falhar
* Outras instruções: instruções
*/
função getHttpAccept()
{
if (isset($_SERVER['HTTP_ACCEPT']))
{
Retornar $_SERVER['HTTP_ACCEPT'];
}
outro
{
Retornar falso;
}
}
/**
* Nome da função: getIP
* Função: Obter IP do celular
* Parâmetros de entrada: nenhum
* Valor de retorno da função: string retornada com sucesso
* Outras instruções: instruções
*/
função getIP()
{
$ip=getenv('REMOTE_ADDR');
$ip_ = getenv('HTTP_X_FORWARDED_FOR');
if (($ip_ != "") && ($ip_ != "desconhecido"))
{
$ip=$ip_;
}
retornar $ip;
}
}
?>
4. Design da página
Ao desenvolver wap, a página wap é muito simples. Não pode ser mais simples que html. No wap1.0, não há coisas confusas como tabelas. Todas as tags são escritas em uma tag chamada cartão. . Pode ser usado para segmentação. Portanto, é fácil criar páginas.
5. Simulador
Para desenvolvimento wap, é inevitável usar vários simuladores para teste. é melhor não usá-lo para teste. Sua compatibilidade é tão boa que mesmo que haja erros na página, eles podem ser ignorados. O teste é o mesmo que usar um navegador para testar uma página da web. Não há nada mais fácil do que isso
6. Notas
1) Espaços, especialmente ao definir DTD,
eco "";
?>
Se houver espaços faltando em algum lugar, você sofrerá. Quando eu estava escrevendo, usei a reorganização da página para remover alguns espaços
. ) Tags, se as tags não estiverem emparelhadas, será solicitado um erro. Basta prestar atenção, é fácil de corrigir.