Internet Explorer Mobile 6

A Microsoft anunciou em Novembro o novo Internet Explorer Mobile 6, que como o seu nome indica, é uma versão do Internet Explorer para Windows Mobile baseada no motor do IE 6.0.

Esta nova versão do Internet Explorer deverá surgir em alguns novos equipamentos durante 2009, ou em equipamentos para os quais os respectivos fabricantes decidam disponibilizar novas roms, não sendo possível a sua instalação pelo utilizador final nos seus equipamentos. Esse é mesmo o único inconveniente deste novo Internet Explorer 6 Mobile, e experimentá-lo torna ainda mais difícil encarar essa impossibilidade!

Entre as novas funcionalidades destacam-se:

  • Suporte para WML
  • Experiência melhorada de visualização e navegação, em equipamentos com e sem ecrã táctil
  • Inclusão opcional do Adobe Flash Lite 3.1 (opção a cargo do fabricante)
  • Optimizações de formatação de páginas para ecrãs de equipamentos móveis
  • Suporte melhorado a diversos standards
  • Suporte para AJAX e scripting

A partir do seguinte link podem descarregar emuladores Windows Mobile Professional e Standard em diferentes resoluções com o Internet Explorer Mobile 6, a partir dos quais podem testá-lo:

Windows Mobile 6.1.4 Emulator Images
http://www.microsoft.com/downloads/details.aspx?FamilyId=1A7A6B52-F89E-4354-84CE-5D19C204498A&displaylang=en

Pessoalmente sugiro que para simularem uma ligação do emulador à internet, a partir do Device Emulator escolham a opção ‘Craddle’ do emulador em execução, para que o ActiveSync/WMDC reconheçam o emulador e partilhe a ligação à internet do host com o emulador (se tiverem dificuldade em conseguirem a ligação, deixem comentário)

Ao experimentarem o novo browser poderão constatar que tem 2 modos de visualização, ‘Mobile Device’ para conteúdos optimizados para equipamentos móveis, e ‘Desktop’ para dispensar essas optimizações, obtendo-se uma visualização com grande fidelidade daquilo que o Internet Explorer para Windows disponibiliza. Neste modo podem fazer diversas experiências, como aceder à versão desktop do site de home banking do V/ banco (testei com sucesso o site da CGD, com introdução de credenciais de login no teclado flutuante), ver videos do YouTube e consultar outros sites cuja visualização até agora era penosa em Windows Mobile. Tendo experimentado o Opera que vinha com os Samsung i780 e HTC x7500, tenho a dizer que este novo IEm6 providencia uma experiência de navegação muito mais agradável e mais capaz que o Opera.

Para saber mais sobre o novo IEm6, seja sobre as novas funcionalidades, seja sobre como tirar partido do mesmo na óptica do desenvolvimento de websites optimizados para equipamentos móveis, podem consultar o seguinte documento:

Internet Explorer 6 Mobile
http://download.microsoft.com/download/8/c/c/8cc611e7-ec6b-49ee-af4a-415559d53262/Internet%20Explorer%20Mobile%206.pdf

Nesse documento descobrem por ex. que o seguinte HTML permite que um determinado link quando clicado despolete uma chamada telefónica para o nº indicado:

<a href=“tel:123-5309”>Jenny</a>

E ainda que tal como indicado neste post do Mark Arteaga, de onde copiei as imagens, para identificarem o novo IEm6 a partir das V/ aplicações web, basta atentarem ao conteúdo das user agent strings enviadas pelo browser:

Modo ‘Mobile Device': Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 8.12; MSIE Mobile 6.0)

Modo ‘Desktop': Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Digitando about:version na barra de endreço obterão o conteúdo de uma ou outra das imagens apresentadas consoante o modo de visualização:

   iem6_device       iem6_desktop

Gestão de forms em aplicações .NET CF (3.5)

Foi atribuída à moving2u a tarefa de ‘simples’ conversão de uma solução em .NET CF 1.0 para .NET CF 3.5, entre outras alterações, como suporte a diferentes resoluções e orientações de ecrã, passar a utilizar bases de daods SQL Compact localmente no PDA e suporte a impressão em impressoras portáteis A4 da HP.

Ao correr a nova aplicação nos novos equipamentos da HTC os utilizadores com frequência ‘perdiam-se’, pois ao invocar o ‘task manager’ da HTC, surgiam várias ‘instâncias’ activas da aplicação. Tal comportamento, completamente oposto ao que deve ser uma aplicação .NET CF bem comportada, derivava da forma como os forms eram geridos por quem desenvolveu a versão inicial.

Numa aplicação em que a navegação entre forms fosse ‘explícita’, ou seja, em que cada form antes de fechar-se abre sempre explicitamente outro form, assegurando-se que a cada momento há apenas um form activo, este problema não se colocaria, mas neste caso a ‘retro-navegação’ era implícita dado que os forms eram sempre exibidos com o método .ShowDialog() e fechado com o .Close(), a ‘pilha’ de forms activos era exibida no task manager.

Para contrariar esse comportamento, impõem-se algumas regras, a mais simples das quais indica que para uma instância de um form activo não constar na lista de programas em execução, deve colocar-se o respectivo título (propriedade .Text do form) a vazio. Para não ter de a cada chamada guardar o texto do título do form chamador, limpá-lo, exibir o novo form e ao fechá-lo repor o título no form chamador, criei o seguinte extenseion method:

 

    public static class FormExtensionMethods
    {
        public static System.Windows.Forms.DialogResult ExibeDialogo(this System.Windows.Forms.Form newForm, System.Windows.Forms.Form currentForm)
        {
            string s = currentForm.Text;
            currentForm.Text = "";
            System.Windows.Forms.DialogResult r = newForm.ShowDialog();
            currentForm.Text = s;
            currentForm.Show();
            currentForm.BringToFront();
            return r;
        }
    }

Deste modo, bastou-me mudar as chamadas do tipo myForm.ShowDialog() por myForm.ExibeDialogo(this) para atingir o fim desejado :)