Como utilizar a versão 0.2 da classe IsMobile 23 / janeiro / 2010

A classe IsMobile, que tem como objetivo identificar se o usuário está acessando a sua aplicação web de um dispositivo móvel, chegou na sua versão 0.2, tentando manter a simplicidade, pouco código e o mais didático possível, para os programadores aprenderem como resolver o problema da identificação de mobile devices e poderem contribuir ou desenvolver a sua própria solução.

Antes, vamos ao changelog dessa versão:

# bug:
- Array de dispositivos não estava sendo inicializado caso o usuário não definisse outros dispositivos e a configuração não tivesse sido incluída.

# mudanças:
- Retirada a opção de log
- Removido o suporte a antiga lib php do projeto WURFL
- Removido o arquivo de configuração, não precisamos mais dele.

# novidades:
- Inserido o Android na lista de mobiles device
- Nova forma de gerar log, agora implementamos uma interface, para deixar mais flexivel para o programador.
- Melhoramos o arquivo ismobile_examples.php

Vamos começar falando sobre as mudanças, a opção de log foi reescrita, então não tem por que deixar a antiga, nem pra compatibilidade pois se tratava apenas de um método na classe que você pode continuar usando se quiser, não vai afetar o restante da classe. Sobre a remoção da antiga lib php do projeto WURLF foi por que foi lançada uma nova API, muito melhor que antiga, toda orientada a objeto e etc, fica melhor utilizar ela caso precise de algo com mais detalhes.

O arquivo de configuração… bom, ele não é mais necessário :)

Agora vou mostrar aqui o código do arquivo ismobile_examples.php que vem no pacote do projeto, vou tentar explicar melhor para ajudar quem está começando.

Exemplo básico para identificação do dispositivo móvel

1
2
3
4
5
6
7
8
9
10
11
12
require_once "ismobile.class.php"; // inclua a classe
 
$ismobi = new IsMobile(); // instancie o objeto
 
if($ismobi->CheckMobile()) // utilize o método CheckMobile para verificar, ele retorna TRUE ou FALSE
{
	echo 'O seu dispositivo móvel é  ' . $ismobi->GetMobileDevice() . '? ';
}
else
{
	echo "Você não está usando em dispositivo móvel";
}

O próximo bloco de código faz um teste com USER_AGENTS dos principais celulares do mercado (Nokia, Blackberry, Iphone e Android)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
require_once "ismobile.class.php";
 
$agents_test = array("Nokia6600/1.0 (4.09.1) SymbianOS/7.0s Series60/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0",
"BlackBerry8330/4.3.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/105",
"Opera/8.01 (J2ME/MIDP; Opera Mini/3.0.6306/1528; en; U; ssr)",
"Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3",
"Mozilla/5.0 (Linux; U; Android 1.6; en-it; HTC_TATTOO_A3288 Build/DRC79) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1"); 
 
$ismobiuser = new isMobile($agents_test[rand(0,5)]);
 
if ($ismobiuser->CheckMobile())
{
 $mobileDevice = $ismobiuser -> GetMobileDevice();
  echo 'User Agent: ' . $ismobiuser -> GetUserAgent();
  echo '
 
';
  echo 'Mobile Device: ' . $mobileDevice;
}

A maior mudança foi a troca da maneira de como gerar log, criamos uma classe interface (IsMobileLogger) para que você possa implementar a sua rotina, aumentando a flexibilidade na utilização da classe IsMobile e adicionamos o arquivo ismobile_example_log.php mostrando como fazer, segue o exemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
require_once "ismobile.class.php";
 
class DataBase implements IsMobileLogger {
 
  public function log($msg) {
 
    $c = mysql_connect('localhost', 'root', 'porkaria');
 
      if (mysql_select_db('test', $c)) {
 
        if (mysql_query("INSERT INTO ismobile_log VALUES('', '$msg')")) {
          return true;
        } else {
          exit(mysql_error());
        }
      } else {
        exit('Database Error..');
      }    
 
  }
 
}
 
$log = new DataBase();
$ismob = new IsMobile(false, false, $log);
 
if ($ismob->CheckMobile()) {
  echo 'Logging... Mobile Device... =] ';
} else {
  echo 'Not logging..';
}

Para baixar a versão 0.2 da IsMobile é só ir sessão ferramentas do site.

Já estou pensando em novidades para a próxima versão, como dar outras opções de lista de dispositivos móveis, hoje é configurado por um array, quem sabe adicionar um arquivo externo, acesso a alguma tabela na base…

Quem tiver mais idéias para a nova versão, comenta aí ou então entre em contato pela lista do grupo.

awei!

  • Share/Bookmark
Leave a Reply