SlideShare uma empresa Scribd logo
ReMobile Felipe Andrade Diretor de Tecnologia – i2 Forum Nokia Champion Forum Nokia Widgets Ambassador Forum Nokia Developer Advisory Council Member twitter.com/felipeandrade blogs.forum.nokia.com/blog/felipe-andrades-forum-nokia-blog Recife – Brazil – 02.2009
ReMobile O foco do ReMobile é trocar informações sobre tecnologias móveis através de palestras, vídeo aulas, artigos no formato Wiki, slides, etc. O ReMobile será  sempre  um evento  gratuito Contribuições de tempo, dinheiro, programas e equipamentos são bastante necessárias Grupo http://groups.google.com/group/remobile
Web Runtime (WRT) Desenvolvimento  Web para dispositivos Nokia S60
Agenda O que são Widgets Evolução dos Widgets Widgets para diferentes plataformas Nokia Web Runtime Web Runtime para plataforma S60 O que tem dentro de um web widget S60 Desenvolvimento de Widgets Emulador IDE’s  Introdução a API’s Segurança
O Que São Widgets
Widgets Widgets como uma extensão da Web Web Distribuída Web Portátil Web Remixada Web Programada Web Gerada pelo Consumidor Exemplos de Sucesso
Evolução da Web
Evolução da Web Os Widgets são a evolução natural da Web Pequenos pedaços interdependentes das páginas web Do-It-Yourself
Widgets para diferentes plataformas
Tipos de Widgets Desktop Web Widgets Pessoais Widgets Públicos Mobile Físicos
Widget Engine
Nokia Web Runtime
Web Runtime para plataforma S60
Web Runtime para Plataforma S60 Web Browser funciona como uma máquina virtual Permite rodar aplicações web fora do web browser para dispositivos S60 Suporta padrões de tecnologias já utilizadas na web HTML 4.01, XHTML 1.0 (básico e perfil mobile) CSS 2.1 JavaScript 1.5 (padrão ECMA-262) XMLHttpRequest (Ajax) DOM Level 2 Inclui bibliotecas JavaScript especificas para Widgets (widget, menu, SystemInfo) Micro aplicações altamente interativas
Web Runtime como uma VM A engine do Web Browser processa  os componentes chave como a engine XML, processador HTML, engine JavaScript, processador CSS, e a engine de renderização. Possui páginas web e aplicações widgets como clientes JavaScript como uma linguagem de Programação Provê acesso a um certo de nível de propriedades do sistema Agora você já conheçe o Web Runtime
Web Browser para S60
Expande  as  API’s  do Web Browser S60
Web Runtime - Objetivos Widgets Utilizam serviços da internet e APIs web para acessar informações Utilizam XmlHttpRequest e outras técnicas AJAX Grande facilidade em portar Widgets de outras plataformas Widgets Integrados a experiência do usuário Ícones da aplicação no menu principal Podem ser utilizados em telas de espera e atalhos Aparecem na lista de aplicativos ativos Funcionam da mesma forma que aplicações S60 já existentes Habilita o acesso a APIs especificas dos Widgets (widget, system, info, menu)
Web Runtime - Futuro Widgets Combinam informações da internet com a plataforma de serviços Aumentam a experiência do usuário Informações sobre a localização, PIM, e media Integrados em telas de espera Melhorias na UI e novas funcionalidades Widgets como uma plataforma de desenvolvimento Integração segura com a plataforma de serviços S60 Acesso a plataforma de serviços via APIs web Segurança e modelo de assinatura para widgets
Mobile Widgets A plataforma S60 foi a primeira a anunciar suporte a Widgets Totalmente baseada em padrões de tecnologias Web A única plataforma mobile a suportar conteúdo Flash em Widgets
O que tem dentro de um web widget S60
Estrutura de um Web Widget S60 Um widget é construído por um conjunto de arquivos info.plist(required) [name].html (required) icon.png(optional) [name].css(optional) [name].js(optional) resources(optional) O projeto  de um Widget não é nada mais do que um diretório no sistema onde os arquivos estão armazenados Os arquivos necessários e o ícone devem estar localizados no diretório root do projeto
Info.plist – Propriedades de um Widget É um arquivo XML contendo as propriedades e informações de configuração de um Widget <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <!DOCTYPE plistPUBLIC &quot;-//Nokia//DTD PLIST 1.0//EN&quot; &quot;http://www.nokia.com/NOKIA_COM_1/DTDs/plist-1.0.dtd&quot;> <plistversion=&quot;1.0&quot;> <dict> <key>DisplayName</key> <string>WidgetName</string> <key>Identifier</key> <string>com.company.widget.project</string <key>MainHTML</key> <string>Main.html</string> </dict> </plist>
WRT - Propriedades suportadas Nome Tipo Status Descrição DisplayName String Required Especifica o atual nome do widget listado na barra de aplicações Identifier String Required Especifica um nome único para o widget no formato de domínio reverso MainHTML String Required Especifica o nome do HTML principal AllowNetworkAcess Boolean Opcional Especifica acesso a dados da rede através dos recursos do Widget ShortVersionString String Opcional Especifica a versão do release da aplicação Version Number Opcional Especifica a versão do pacote
Icon.png O ícone de widget é um arquivo salvo no formato PNG O tamanho recomendado de um ícone é de 88x88 pixels Se o ícone for omitido do pacote de instalação, o widget irá parecer no menu do dispositivo como uma aplicação padrão S60
Dentro de um WRT Widget S60 O arquivo de instalação de um Widget é um arquivo ZIP A extensão do arquivo de instalação é [widgetname].WGZ O tipo MIME de um widget é application/x-nokia-widget
Processo de Instalação de um  Widget
Desenvolvimento de Widgets
4 Passos para Desenvolver Widgets Crie uma pasta no seu desktop. Ex: C:\ReMobile Crie e adicione as informações necessárias no arquivo info.plist, salve este arquivo no diretório criado na etapa 1 C:\ReMobile info.plist Crie e adicione algumas informações no arquivo HTML, não esqueça de utilizar o mesmo nome definido na tag MainHTML do arquivo info.plist C:\ReMobile info.plist remobile.html Crie e/ou adicione arquivos opcionais ao diretório C:\Remobile info.plist remobile.html remobile.js remobile.css
3 Passos para Publicar Widgets Utilize uma ferramenta para comprimir o arquivo no formato ZIP C:\ReMobile C:\ReMobile.zip info.plist remobile.html Mude o nome da extensão do arquivo para WGZ C:\ReMobile.zip C:\ReMobile.WGZ Envie o arquivo via Bluetooth ou abra o arquivo ReMobile.WGZ no emulador
O que você precisa para começar? Para implementar o código de um Widget: Uma ferramenta de edição de texto ou edição web Para debugar um widget Firefox firebug Greasemonkey Um script para liberar o acesso a rede através de chamadas locais (XmlHttpRequest Bypass Security) Para testar um Widget Emulador S60 3rd Edition FP2 SDK  Emulador S60 5th SDK Um dispositivo que suporte a tecnologia
Aptana Studio
Desenvolvendo Web Widgets no Emulador
Desenvolvendo Web Widgets no Emulador
Adicionando Conteúdo Interativo SVG <object data=&quot;resources/gnu.svg&quot; width=&quot;120&quot; height=&quot;120&quot; type=&quot;image/svg+xml&quot;></object> <embed src=&quot;resources/gnu.svg&quot; width=&quot;120&quot; height=&quot;120&quot; type=&quot;image/svg+xml&quot; /> Flash Lite <object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;238&quot; height=&quot;318&quot; id=&quot;MyFlash&quot; align=&quot;middle&quot;> <param name=&quot;allowScriptAccess&quot; value=&quot;sameDomain&quot; /> <param name=&quot;movie&quot; value=&quot;MyFlash.swf&quot; /> <param name=&quot;loop&quot; value=&quot;false&quot; /> <param name=&quot;menu&quot; value=&quot;false&quot; /> <param name=&quot;quality&quot; value=&quot;high&quot; /> <param name=&quot;wmode&quot; value=&quot;opaque&quot; /> <param name=&quot;bgcolor&quot; value=&quot;#ffffff&quot; /> <embed src=&quot;MyFlash.swf&quot; loop=&quot;false&quot; menu=&quot;false&quot; quality=&quot;high&quot; wmode=&quot;opaque&quot; bgcolor=&quot;#ffffff&quot; width=&quot;238&quot; height=&quot;318&quot; name=&quot;Finish&quot; align=&quot;middle&quot; allowScriptAccess=&quot;sameDomain&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; /> </object>
Introdução a API’s WRT
Objeto Widget Módulo embutido do Widget, acessado através das variáveis widget ou window.widget Widget methods openURL(String:url) setPreferenceForKey(String:preference, String:key) preferenceForKey(String:key) prepareForTransition(String:transitionState) performTransition(void) setNavigationEnabled(Boolean:flag) openApplication(Hex:Uid, String:param) setDisplayLandscape(void) setDisplayPortrait(void) • Widget properties identifier [readonly, String] onshow[assigned callback function] onhide[assigned callback function] isrotationsupported[readonly, Booloean]
Objeto Widget function manipularTela() { var h = window.screen.height; var w = window.screen.width; if (h < w) widget.setDisplayLanscape(); else widget.setDisplayPortrait(); }
Objeto Menu É uma extensão do objeto widget Provê uma interface para manipular o menu de opções e softkeys de um widget Menu methods append(MenuItemmenuItem) remove(MenuItemmenuItem) getMenuItemById(Integer:id) getMenuItemByName(String:label) setRightSoftkeyLabel(String:label, function:callbackfunction) showSoftkeys(void) hideSoftkeys(void) clear(void) Menu properties onShow[assigned callback function]
Objeto MenuItem Provê uma interface para criar itens de menu Metódos do Menu Item new MenuItem(String:label, Integer:id) append(MenuItem:childMenuItem) remove(MenuItem:childMenuItem) replace(MenuItem:oldMenuItem, MenuItem:newMenuItem) setDimmed(Boolean:flag) Propriedades do Menu Item onSelect [assigned callback function]
Objeto MenuItem function createMenu { var settings = new MenuItem(‘Settings’, 10); settings.onSelect = showSettings; window.menu.append(settings); } function showSettings(id) { document.getElementById(‘setting’).style.display = ‘block’; }
SystemInfo Service API SystemInfo service API é um plugin Netscape Subconjunto de propriedades do sistema Memória, rede, status da bateria, etc. O plugin SystemInfo Service é carregado via o elemento <embed> do HTML  <embed type=&quot;application/x-systeminfo-widget&quot; hidden=&quot;yes&quot;>  </embed> SystemInfo service não é carregado no contexto do Browser
SystemInfo Service API Power properties chargelevel [readonly, int] chargerconnected [readonly, int] onchargelevel [writeonly, function] onchargerconnected [writeonly, function] Network properties signalbars [readonly, int] signalstrength [readonly, int] networkname [readonly, string] registrationstatus [readonly, int] onsignalstrength [assigned callback function] onregistrationstatus [assigned callback function]
SystemInfo Service API Light methods lighton(Int:lighttarget, Int:duration, Int:intensity, Int:fadein) lightblink(Int:lighttarget, Int:duration, Int:onduration, Int:offduration, Int:intensity) lightoff(Int:lighttarget, Int:duration, Int:fadeout) Light properties lightminintensity [readonly, Int] lightmaxintensity [readonly, Int] lightdefaultintensity [readonly, Int] lightinfiniteduration [readonly, Int] lightmaxduration [readonly, Int] lightdefaultcycletime [readonly, Int] lighttargetprimarydisplayandkeyboard [readonly, Int] lighttargetsystem [readonly, Int]
SystemInfo Service API Vibra methods startvibra(Integer:duration, Integer:intensity) stopvibra(void) Vibra properties vibraminintensity [readonly, Integer] vibramaxintensity [readonly, Integer] vibramaxintensity [readonly, Integer] vibrasettings [readonly, Integer] Beep methods beep(Integer:frequency, Integer:duration) Memory properties totalram [readonly, Integer] freeram [readonly, Integer]
SystemInfo Service API File system methods drivesize(String:drive) drivefree(String:drive) File system properties drivelist [readonly, String] Language properties language [readonly, String]
Segurança nos Widgets
Visão Geral Ao contrário dos arquivos SIS, Widgets não precisam ser assinados. Widgets são considerados inseguros. Para acessar serviços nativos do aparelho existe o controle do usuário, que neste caso precisa autorizar o aplicativo para acessar estes recursos Widgets acessam a rede através do Web Browser S60. Widgets acessam a plataforma de serviços S60 através de APIs de serviços JavaScript. Para o WRT 1.0, o Web Runtime controla o acesso a plataforma de serviços através do Web Browser S60. Para o WRT 1.1, o Web Runtime utiliza o Runtime Security Manager para controlar o acesso a plataforma de serviços.
Política de Segurança WRT 1.1 JavaScript Service API Capability SystemInfo ReadUserData, Location Messaging ReadUserData, WriteUserData, NetworkServices Logging ReadUserData, WriteUserData Location Location Landmarks ReadUserData, WriteUserData Contacts ReadUserData, WriteUserData Calender   ReadUserData, WriteUserData Application Manager ReadUserData
Obrigado!

Mais conteúdo relacionado

PPTX
Introducing Mobile Development for Web Developers
PPTX
Symbian OS: How To Build Your Gadget
PPT
IGDA Recife: Oportunidades de negócios para pequenas empresas
PDF
Mobilidade e SVA: Oportunidades de Negócios
PDF
Fastpark - Sistema de localização de vagas em estacionamentos
PDF
Desenvolvimento HTML5 para Smartphones e Tablets BlackBerry
PDF
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
PDF
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Introducing Mobile Development for Web Developers
Symbian OS: How To Build Your Gadget
IGDA Recife: Oportunidades de negócios para pequenas empresas
Mobilidade e SVA: Oportunidades de Negócios
Fastpark - Sistema de localização de vagas em estacionamentos
Desenvolvimento HTML5 para Smartphones e Tablets BlackBerry
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...

Semelhante a ReMobile - Nokia Web Runtime (20)

ODP
Concurso widgets da TMN
KEY
Best pratices para desenvolvimento mobile
PPTX
Tdc2011 goiânia-web apps-30102011
PDF
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
PPT
Computacao Movel e Sem Fio
KEY
Nativo x Híbrido x WebApps - SEMCOMP UFBA 2012
PPT
PDF
Desenvolvimento Mobile Web
PDF
Desenvolvimento Mobile Web e PHP no Sinform2010
PDF
PHP e o Desenvolvimento Mobile Web no LinguAgil
PDF
Desenvolvimento Mobile Web na TechEdBr
PDF
Desenvolvimento Mobile Web & Software Livre - Flisol cg
PDF
Desenvolvendo para Android com PhoneGap
PPT
PDF
Mini Curso - Design de Interface para Dispositivos Móveis
PDF
Flash mobile
PPT
Mobile Apps Cross-Platform
PDF
Desenvolvimento Mobile Web e o PHP
PDF
Nokia Web 1- 5 SDK para Série 40
KEY
Sapo Sessions - Web Mobile
Concurso widgets da TMN
Best pratices para desenvolvimento mobile
Tdc2011 goiânia-web apps-30102011
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Computacao Movel e Sem Fio
Nativo x Híbrido x WebApps - SEMCOMP UFBA 2012
Desenvolvimento Mobile Web
Desenvolvimento Mobile Web e PHP no Sinform2010
PHP e o Desenvolvimento Mobile Web no LinguAgil
Desenvolvimento Mobile Web na TechEdBr
Desenvolvimento Mobile Web & Software Livre - Flisol cg
Desenvolvendo para Android com PhoneGap
Mini Curso - Design de Interface para Dispositivos Móveis
Flash mobile
Mobile Apps Cross-Platform
Desenvolvimento Mobile Web e o PHP
Nokia Web 1- 5 SDK para Série 40
Sapo Sessions - Web Mobile
Anúncio

Último (8)

PPTX
Mecânico de Manutenção de Equipamentos.pptx
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Mecânico de Manutenção de Equipamentos.pptx
Viasol Energia Solar -Soluções para geração e economia de energia
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Manejo integrado de pragas na cultura do algodão
Arquitetura de computadores - Memórias Secundárias
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Anúncio

ReMobile - Nokia Web Runtime

  • 1. ReMobile Felipe Andrade Diretor de Tecnologia – i2 Forum Nokia Champion Forum Nokia Widgets Ambassador Forum Nokia Developer Advisory Council Member twitter.com/felipeandrade blogs.forum.nokia.com/blog/felipe-andrades-forum-nokia-blog Recife – Brazil – 02.2009
  • 2. ReMobile O foco do ReMobile é trocar informações sobre tecnologias móveis através de palestras, vídeo aulas, artigos no formato Wiki, slides, etc. O ReMobile será sempre um evento gratuito Contribuições de tempo, dinheiro, programas e equipamentos são bastante necessárias Grupo http://groups.google.com/group/remobile
  • 3. Web Runtime (WRT) Desenvolvimento Web para dispositivos Nokia S60
  • 4. Agenda O que são Widgets Evolução dos Widgets Widgets para diferentes plataformas Nokia Web Runtime Web Runtime para plataforma S60 O que tem dentro de um web widget S60 Desenvolvimento de Widgets Emulador IDE’s Introdução a API’s Segurança
  • 5. O Que São Widgets
  • 6. Widgets Widgets como uma extensão da Web Web Distribuída Web Portátil Web Remixada Web Programada Web Gerada pelo Consumidor Exemplos de Sucesso
  • 8. Evolução da Web Os Widgets são a evolução natural da Web Pequenos pedaços interdependentes das páginas web Do-It-Yourself
  • 10. Tipos de Widgets Desktop Web Widgets Pessoais Widgets Públicos Mobile Físicos
  • 13. Web Runtime para plataforma S60
  • 14. Web Runtime para Plataforma S60 Web Browser funciona como uma máquina virtual Permite rodar aplicações web fora do web browser para dispositivos S60 Suporta padrões de tecnologias já utilizadas na web HTML 4.01, XHTML 1.0 (básico e perfil mobile) CSS 2.1 JavaScript 1.5 (padrão ECMA-262) XMLHttpRequest (Ajax) DOM Level 2 Inclui bibliotecas JavaScript especificas para Widgets (widget, menu, SystemInfo) Micro aplicações altamente interativas
  • 15. Web Runtime como uma VM A engine do Web Browser processa os componentes chave como a engine XML, processador HTML, engine JavaScript, processador CSS, e a engine de renderização. Possui páginas web e aplicações widgets como clientes JavaScript como uma linguagem de Programação Provê acesso a um certo de nível de propriedades do sistema Agora você já conheçe o Web Runtime
  • 17. Expande as API’s do Web Browser S60
  • 18. Web Runtime - Objetivos Widgets Utilizam serviços da internet e APIs web para acessar informações Utilizam XmlHttpRequest e outras técnicas AJAX Grande facilidade em portar Widgets de outras plataformas Widgets Integrados a experiência do usuário Ícones da aplicação no menu principal Podem ser utilizados em telas de espera e atalhos Aparecem na lista de aplicativos ativos Funcionam da mesma forma que aplicações S60 já existentes Habilita o acesso a APIs especificas dos Widgets (widget, system, info, menu)
  • 19. Web Runtime - Futuro Widgets Combinam informações da internet com a plataforma de serviços Aumentam a experiência do usuário Informações sobre a localização, PIM, e media Integrados em telas de espera Melhorias na UI e novas funcionalidades Widgets como uma plataforma de desenvolvimento Integração segura com a plataforma de serviços S60 Acesso a plataforma de serviços via APIs web Segurança e modelo de assinatura para widgets
  • 20. Mobile Widgets A plataforma S60 foi a primeira a anunciar suporte a Widgets Totalmente baseada em padrões de tecnologias Web A única plataforma mobile a suportar conteúdo Flash em Widgets
  • 21. O que tem dentro de um web widget S60
  • 22. Estrutura de um Web Widget S60 Um widget é construído por um conjunto de arquivos info.plist(required) [name].html (required) icon.png(optional) [name].css(optional) [name].js(optional) resources(optional) O projeto de um Widget não é nada mais do que um diretório no sistema onde os arquivos estão armazenados Os arquivos necessários e o ícone devem estar localizados no diretório root do projeto
  • 23. Info.plist – Propriedades de um Widget É um arquivo XML contendo as propriedades e informações de configuração de um Widget <?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> <!DOCTYPE plistPUBLIC &quot;-//Nokia//DTD PLIST 1.0//EN&quot; &quot;http://www.nokia.com/NOKIA_COM_1/DTDs/plist-1.0.dtd&quot;> <plistversion=&quot;1.0&quot;> <dict> <key>DisplayName</key> <string>WidgetName</string> <key>Identifier</key> <string>com.company.widget.project</string <key>MainHTML</key> <string>Main.html</string> </dict> </plist>
  • 24. WRT - Propriedades suportadas Nome Tipo Status Descrição DisplayName String Required Especifica o atual nome do widget listado na barra de aplicações Identifier String Required Especifica um nome único para o widget no formato de domínio reverso MainHTML String Required Especifica o nome do HTML principal AllowNetworkAcess Boolean Opcional Especifica acesso a dados da rede através dos recursos do Widget ShortVersionString String Opcional Especifica a versão do release da aplicação Version Number Opcional Especifica a versão do pacote
  • 25. Icon.png O ícone de widget é um arquivo salvo no formato PNG O tamanho recomendado de um ícone é de 88x88 pixels Se o ícone for omitido do pacote de instalação, o widget irá parecer no menu do dispositivo como uma aplicação padrão S60
  • 26. Dentro de um WRT Widget S60 O arquivo de instalação de um Widget é um arquivo ZIP A extensão do arquivo de instalação é [widgetname].WGZ O tipo MIME de um widget é application/x-nokia-widget
  • 27. Processo de Instalação de um Widget
  • 29. 4 Passos para Desenvolver Widgets Crie uma pasta no seu desktop. Ex: C:\ReMobile Crie e adicione as informações necessárias no arquivo info.plist, salve este arquivo no diretório criado na etapa 1 C:\ReMobile info.plist Crie e adicione algumas informações no arquivo HTML, não esqueça de utilizar o mesmo nome definido na tag MainHTML do arquivo info.plist C:\ReMobile info.plist remobile.html Crie e/ou adicione arquivos opcionais ao diretório C:\Remobile info.plist remobile.html remobile.js remobile.css
  • 30. 3 Passos para Publicar Widgets Utilize uma ferramenta para comprimir o arquivo no formato ZIP C:\ReMobile C:\ReMobile.zip info.plist remobile.html Mude o nome da extensão do arquivo para WGZ C:\ReMobile.zip C:\ReMobile.WGZ Envie o arquivo via Bluetooth ou abra o arquivo ReMobile.WGZ no emulador
  • 31. O que você precisa para começar? Para implementar o código de um Widget: Uma ferramenta de edição de texto ou edição web Para debugar um widget Firefox firebug Greasemonkey Um script para liberar o acesso a rede através de chamadas locais (XmlHttpRequest Bypass Security) Para testar um Widget Emulador S60 3rd Edition FP2 SDK Emulador S60 5th SDK Um dispositivo que suporte a tecnologia
  • 35. Adicionando Conteúdo Interativo SVG <object data=&quot;resources/gnu.svg&quot; width=&quot;120&quot; height=&quot;120&quot; type=&quot;image/svg+xml&quot;></object> <embed src=&quot;resources/gnu.svg&quot; width=&quot;120&quot; height=&quot;120&quot; type=&quot;image/svg+xml&quot; /> Flash Lite <object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;238&quot; height=&quot;318&quot; id=&quot;MyFlash&quot; align=&quot;middle&quot;> <param name=&quot;allowScriptAccess&quot; value=&quot;sameDomain&quot; /> <param name=&quot;movie&quot; value=&quot;MyFlash.swf&quot; /> <param name=&quot;loop&quot; value=&quot;false&quot; /> <param name=&quot;menu&quot; value=&quot;false&quot; /> <param name=&quot;quality&quot; value=&quot;high&quot; /> <param name=&quot;wmode&quot; value=&quot;opaque&quot; /> <param name=&quot;bgcolor&quot; value=&quot;#ffffff&quot; /> <embed src=&quot;MyFlash.swf&quot; loop=&quot;false&quot; menu=&quot;false&quot; quality=&quot;high&quot; wmode=&quot;opaque&quot; bgcolor=&quot;#ffffff&quot; width=&quot;238&quot; height=&quot;318&quot; name=&quot;Finish&quot; align=&quot;middle&quot; allowScriptAccess=&quot;sameDomain&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; /> </object>
  • 37. Objeto Widget Módulo embutido do Widget, acessado através das variáveis widget ou window.widget Widget methods openURL(String:url) setPreferenceForKey(String:preference, String:key) preferenceForKey(String:key) prepareForTransition(String:transitionState) performTransition(void) setNavigationEnabled(Boolean:flag) openApplication(Hex:Uid, String:param) setDisplayLandscape(void) setDisplayPortrait(void) • Widget properties identifier [readonly, String] onshow[assigned callback function] onhide[assigned callback function] isrotationsupported[readonly, Booloean]
  • 38. Objeto Widget function manipularTela() { var h = window.screen.height; var w = window.screen.width; if (h < w) widget.setDisplayLanscape(); else widget.setDisplayPortrait(); }
  • 39. Objeto Menu É uma extensão do objeto widget Provê uma interface para manipular o menu de opções e softkeys de um widget Menu methods append(MenuItemmenuItem) remove(MenuItemmenuItem) getMenuItemById(Integer:id) getMenuItemByName(String:label) setRightSoftkeyLabel(String:label, function:callbackfunction) showSoftkeys(void) hideSoftkeys(void) clear(void) Menu properties onShow[assigned callback function]
  • 40. Objeto MenuItem Provê uma interface para criar itens de menu Metódos do Menu Item new MenuItem(String:label, Integer:id) append(MenuItem:childMenuItem) remove(MenuItem:childMenuItem) replace(MenuItem:oldMenuItem, MenuItem:newMenuItem) setDimmed(Boolean:flag) Propriedades do Menu Item onSelect [assigned callback function]
  • 41. Objeto MenuItem function createMenu { var settings = new MenuItem(‘Settings’, 10); settings.onSelect = showSettings; window.menu.append(settings); } function showSettings(id) { document.getElementById(‘setting’).style.display = ‘block’; }
  • 42. SystemInfo Service API SystemInfo service API é um plugin Netscape Subconjunto de propriedades do sistema Memória, rede, status da bateria, etc. O plugin SystemInfo Service é carregado via o elemento <embed> do HTML <embed type=&quot;application/x-systeminfo-widget&quot; hidden=&quot;yes&quot;> </embed> SystemInfo service não é carregado no contexto do Browser
  • 43. SystemInfo Service API Power properties chargelevel [readonly, int] chargerconnected [readonly, int] onchargelevel [writeonly, function] onchargerconnected [writeonly, function] Network properties signalbars [readonly, int] signalstrength [readonly, int] networkname [readonly, string] registrationstatus [readonly, int] onsignalstrength [assigned callback function] onregistrationstatus [assigned callback function]
  • 44. SystemInfo Service API Light methods lighton(Int:lighttarget, Int:duration, Int:intensity, Int:fadein) lightblink(Int:lighttarget, Int:duration, Int:onduration, Int:offduration, Int:intensity) lightoff(Int:lighttarget, Int:duration, Int:fadeout) Light properties lightminintensity [readonly, Int] lightmaxintensity [readonly, Int] lightdefaultintensity [readonly, Int] lightinfiniteduration [readonly, Int] lightmaxduration [readonly, Int] lightdefaultcycletime [readonly, Int] lighttargetprimarydisplayandkeyboard [readonly, Int] lighttargetsystem [readonly, Int]
  • 45. SystemInfo Service API Vibra methods startvibra(Integer:duration, Integer:intensity) stopvibra(void) Vibra properties vibraminintensity [readonly, Integer] vibramaxintensity [readonly, Integer] vibramaxintensity [readonly, Integer] vibrasettings [readonly, Integer] Beep methods beep(Integer:frequency, Integer:duration) Memory properties totalram [readonly, Integer] freeram [readonly, Integer]
  • 46. SystemInfo Service API File system methods drivesize(String:drive) drivefree(String:drive) File system properties drivelist [readonly, String] Language properties language [readonly, String]
  • 48. Visão Geral Ao contrário dos arquivos SIS, Widgets não precisam ser assinados. Widgets são considerados inseguros. Para acessar serviços nativos do aparelho existe o controle do usuário, que neste caso precisa autorizar o aplicativo para acessar estes recursos Widgets acessam a rede através do Web Browser S60. Widgets acessam a plataforma de serviços S60 através de APIs de serviços JavaScript. Para o WRT 1.0, o Web Runtime controla o acesso a plataforma de serviços através do Web Browser S60. Para o WRT 1.1, o Web Runtime utiliza o Runtime Security Manager para controlar o acesso a plataforma de serviços.
  • 49. Política de Segurança WRT 1.1 JavaScript Service API Capability SystemInfo ReadUserData, Location Messaging ReadUserData, WriteUserData, NetworkServices Logging ReadUserData, WriteUserData Location Location Landmarks ReadUserData, WriteUserData Contacts ReadUserData, WriteUserData Calender ReadUserData, WriteUserData Application Manager ReadUserData

Notas do Editor

  • #2: Bom dia, para aqueles que não me conheçem ainda, sou Felipe Andrade, co-fundador da i2 tecnologia, empresa com foco em entretenimento para dispositivos móveis. Na i2tecnologia trabalhamos com o Adobe Flash, Python S60, Java ME, Widgets, Symbian, desenvolvimento para o iPhone, Android, Palm. Em 2007, recebi o titulo de Forum Nokia Champion, em razão das minhas contribuições para o desenvolvimento mobile utilizando smartphones Nokia.