Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

A primeira vez que acessar o developerWorks, um perfil será criado para você. Informações do seu perfil (tais como: nome, país / região, e empresa) estarão disponíveis ao público, que poderá acompanhar qualquer conteúdo que você publicar. Seu perfil no developerWorks pode ser atualizado a qualquer momento.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Forneça uma excepcional experiência da web móvel usando WebSphere Portal e IBM Worklight, Parte 2: Integrando o suporte a diversos dispositivos para páginas do WebSphere Portal

Jonathan Lidaka, WebSphere Portal Front-end Engineer, IBM
Jon Lidaka é engenheiro de frontend e trabalha no Research Triangle Park Development Lab da IBM. Durante seu tempo no desenvolvimento de Portal, contribuiu principalmente para o desenvolvimento de temas, com foco em acessibilidade e globalização, e para vários componentes, incluindo portlets de administração e integrador de aplicativo da web. Atualmente, é líder da missão de desenvolvimento para dispositivos móveis do Portal. Jon deu palestras em várias conferências da IBM sobre design de interface com o usuário e otimização de temas do Portal para dispositivos móveis.
(Um autor Contribuidor do IBM developerWorks)

Resumo:  IBM® WebSphere® e as soluções Exceptional Web Experience da IBM são os principais no mercado de experiência na web há mais de uma década. IBM Worklight™ é uma plataforma de aplicativo corporativo nova e completa, para entregar aplicativos nativos, híbridos e da web. Este artigo explica como ativar o suporte para aplicativos Android e iOS durante a ativação da integração de WebSphere Portal e Worklight. Este exercício aumenta a amostra apresentada na Parte 1 e demonstra como desenvolver um aplicativo do iOS e incluir dinamicamente os recursos apropriados do Worklight.

Visualizar mais conteúdo nesta série

Data:  07/Dez/2012
Nível:  Intermediário Também disponível em :   Inglês PDF:  A4 e Carta (1129 KB | 25 páginas)Obtenha o Adobe® Reader®
Atividade:  1177 visualizações
Comentários:  


Introdução

Obtenha o Worklight já

Faça o download de IBM Worklight Developer Edition 5.0 agora, sem custo e sem data de expiração!

A plataforma IBM Worklight permite criar aplicativos para muitos ambientes de dispositivos, incluindo iOS, Android e Blackberry. Através do uso de tecnologia como Apache Cordova, usado e incluído no Worklight, é possível chamar recursos nativos através de JavaScript™ a partir da marcação da web.

Este artigo explica o processo de criação de um aplicativo híbrido para iOS que faz integração com o IBM WebSphere Portal. Discutimos o processo para determinar o dispositivo que acessou o portal e para incluir os recursos apropriados - para iOS ou Android - para permitir o suporte a recursos nativos no aplicativo.

Pré-requisitos

Este artigo amplia as informações apresentadas na Parte 1 desta série. Conclua a solução da amostra da Parte 1 antes de continuar com as etapas delineadas aqui.

Além dos pré-requisitos definidos na Parte 1, é necessário ter Apple Xcode instalado para desenvolver o aplicativo híbrido de amostra descrito aqui. Este artigo é baseado no aplicativo híbrido do Worklight com suporte para Apple iPhone. Essa amostra foi testada com Apple Xcode versão 4.4.1 e está disponível apenas para Apple OS X.


Crie o ambiente do iOS no Worklight

  1. Para criar um novo ambiente para o iPhone no Worklight, abra o Explorador de Projetos e clique com o botão direito em WLPortalApp na pasta de aplicativos, e em seguida selecione New > Worklight Environment (Figura 1).

    Figura 1. Crie um novo ambiente do Worklight


  2. O painel New Worklight Environment é exibido (Figura 2). Para essa amostra particular, selecione iPhone. Caso quisesse criar ambientes para outros dispositivos iOS, como iPad, esse seria o painel no qual especificar essas opções. Clique em Finish.

    Figura 2. Ambiente do Worklight exibido em Eclipse


  3. Worklight Studio atualiza o projeto com um aplicativo nativo para dispositivos iPhone (Figura 3).

    Figura 3. O aplicativo nativo do iPhone é incluído no projeto


  4. Em seguida, abra o arquivo da classe principal do aplicativo nativo do iOS (Figura 4). Esse arquivo está localizado em \WLPortal\apps\WLPortalApp\iPhone\native\classes\WLPortalApp.m. Esse é o arquivo que será modificado, semelhante ao arquivo WLPortalApp.java na Parte 1. Todos os aplicativos do iOS são escritos em Objective-C (consulte Recursos).

    Figura 4. O arquivo da classe principal do aplicativo nativo do iOS


  5. Para exibir o portal no aplicativo do iOS, o método ativador deverá ser modificado para carregar a URL do portal. O método que será modificado chama-se didFinishLaunchingWithOptions (Listagem 1) e basicamente ativa um arquivo HTML interno que é criado por padrão.

    Listagem 1. Método didFinishLaunchingWithOptions em WLPortalApp.m
    /**
     * This is main kick off after the app inits, the views and Settings are setup here.
     */
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
    (NSDictionary *)launchOptions 
    {
        BOOL ret = [super application:application didFinishLaunchingWithOptions:
    launchOptions];
       
        /*
         * If you need to do any extra app-specific initialization, you can do it here.
         **/
        
        return ret;
    }

  6. Substitua o bloco de código da Listagem 1 com o código da Listagem 2. O novo código ativará o aplicativo automaticamente em uma visualização ma web direcionada ao portal.

    Listagem 2. Método didFinishLaunchingWithOptions direcionando o aplicativo à URL do Portal
    -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
    (NSDictionary *)launchOptions
    {
        BOOL superResult = [super application:application didFinishLaunchingWithOptions:
    launchOptions];
        NSURL* remoteURL = [NSURL URLWithString:@"http://9.99.999.999:10039/wps/portal”];
        NSURLRequest* request = [NSURLRequest requestWithURL:remoteURL];
        [self.viewController.webView loadRequest:request];
        return superResult;
    }

    O endereço IP nesse exemplo deve ser o endereço do servidor WebSphere Portal que você deseja inserir no seu aplicativo híbrido.
  7. Abra o arquivo Cordova.plist localizado em \WLPortal\apps\WLPortalApp\iphone\native.
  8. Encontre a chave de atributo chamada OpenAllWhitelistURLsInWebView e configure-a como “true” (Listagem 3.

    Listagem 3. OpenAllWhitelistURLsInWebView configurado como true
    <key>OpenAllWhitelistURLsInWebView</key>
    <true/>

  9. Agora que você configurou o aplicativo, deve verificar se ele será desenvolvido e implementado. Como é possível ver na Figura 5, o comando Build All and Deploy significa que os aplicativos nativos serão reimplementados com base nas alterações no aplicativo da web. Para executar o comando Build All and Deploy, clique com o botão direito no aplicativo e selecione Run As > Build All and Deploy.

    Figura 5. Selecionando build and deploy


  10. Quando o processo de desenvolvimento começar, é possível ver o progresso no banner de status inferior no Eclipse. Quando o processo for concluído, deve aparecer a mensagem Application 'YourApp' deployed successfully with all environments no console do Worklight. Os aplicativos para iOS e Android foram atualizados.
  11. Em seguida, visualize o aplicativo no simulador iOS. Para isso, primeiro clique com o botão direito em iphone no projeto no Eclipse e selecione Run as > Xcode project (Figura 6). Isso ativará o Xcode e seu aplicativo será exibido no console (Figura 7).

    Figura 6. Executando o aplicativo como projeto Xcode




    Figura 7. O aplicativo exibido em XCode


  12. Como o aplicativo foi criado para iPhones, altere o simulador para iPhone: clique na seta para baixo, ao lado do ícone Run no canto superior esquerdo do console, e selecione iPhone 5.1 Simulator (Figura 8).

    Figura 8. Altere o simulador para iPhone


  13. Selecione o ícone Run no canto superior esquerdo (Figura 9) e o simulador ativará o aplicativo (Figura 10).

    Figura 9. O botão Run em Xcode




    Figura 10. O aplicativo sendo executado no simulador de iPhone



Atualize o tema do WebSphere Portal para iOS e Android

O tema do WebSphere Portal precisa agora de uma atualização, para identificar o sistema operacional do dispositivo móvel e incluir o conjunto correto de arquivos para obter os recursos do Worklight. A identificação do sistema operacional do dispositivo móvel será feita pelo mecanismo de classe de dispositivo no WebSphere Portal. Por padrão, os clientes de smartphone de Android e iOS são combinados em uma única classe de dispositivo chamada smartphone. É necessário separar os clientes para carregar recursos com base no sistema operacional.

  1. Para atualizar o cliente do iPhone para que seja identificado de forma diferente que o do Android, execute o script xmlaccess na Listagem 4.

    Listagem 4. Script XMLAccess para alterar a classe do dispositivo para iPhone e Android Mobile
    <?xml version="1.0" encoding="UTF-8"?>
    <request type="update" 
    		 version="8.0.0.0" 
    		 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    		 xsi:noNamespaceSchemaLocation="PortalConfig_8.0.0.xsd">
        <portal action="locate">
            <client action="update" domain="rel" manufacturer="Apple" markup="html" 
    uniquename="wps.client.iphone">
                <useragent-pattern>.*iPhone.*</useragent-pattern>
    	<client-capability update="remove">com.ibm.portal.devicesupport.deviceclass=
    smartphone</client-capability>
    	<client-capability update="set">com.ibm.portal.devicesupport.deviceclass=
    smartphone-ios</client-capability>     	
                <client-capability update="set">HTML_4_0</client-capability>
            </client>
        </portal>
    </request>

    Se você estava usando anteriormente a classe de dispositivo smartphone, precisa atualizar a lógica personalizada ou modelos estáticos para usar a nova classe smartphone-ios.
  2. Na Parte 1, você criou um tema customizado, e parte desse tema envolveu a criação de um aplicativo da web EAR que inclui recursos dinâmicos customizados. Abra o arquivo head.jsp localizado em /<wp_profile>/installedApps/<node>/<custom_ear>/<custom_war>/themes/html/dynamicSpots/. Ao final do arquivo head.jsp, inclua o código na Listagem 5, que irá recuperar a classe de dispositivo e gravá-la em uma variável JSP.

    Listagem 5. Recupere a classe de dispositivo
    <c:set var="deviceClass" scope="request" value="${wp.clientProfile['DeviceClass']}"
    />

  3. Após a linha de código para recuperar a classe de dispositivo, use as informações obtidas para verificar se o dispositivo é um smartphone iOS ou Android (Listagem 6).

    Listagem 6. Lógica para verificar se o smartphone é iOS ou Android
    <c:if test="${deviceClass == 'smartphone'}">
    <!--android devices -->
    <c:if test="${deviceClass == 'smartphone-ios'}">
    <!--ios devices -->
    </c:if>

  4. Agora que o tema está pronto para determinar o dispositivo que está acessando o portal, é possível mover os arquivos específicos do iOS do Worklight para o WebSphere Portal. Muitos arquivos usados na Parte 1 serão os mesmos entre os dispositivos, mas aqueles que não foram compartilhados incluirão o namespace ios. O arquivo que define o JavaScript que precisa ser incluído no WebSphere Portal é WLPortalApp.html, localizado em \WLPortal\apps\WLPortalApp\iphone\native\www\default\.
  5. O primeiro arquivo que precisa ser criado especificamente para o iPhone é o arquivo de propriedades estáticas. As propriedades estáticas são definidas no começo do arquivo HTML (Listagem 7).

    Listagem 7. Propriedades estáticas para iPhone
    	var WL = WL ? WL : {};
    
    	/**
    	 * WLClient configuration variables.
    	 * Values are injected by the deployer that packs the gadget.
    	 */
    
    	 WL.StaticAppProps = {
    	"APP_DISPLAY_NAME": "WLPortalApp",
    	"APP_SERVICES_URL": "\/apps\/services\/",
    	"APP_VERSION": "1.0",
    	"ENVIRONMENT": "iphone",
    	"LOGIN_DISPLAY_TYPE": "embedded",
    	"WORKLIGHT_ROOT_URL": "\/apps\/services\/api\/WLPortalApp\/iphone\/"
    };

  6. Inclua o JavaScript desse arquivo HTML (Listagem 7) de forma utilizável em um novo arquivo JavaScript chamado staticprops.ios.js. Coloque esse novo arquivo neste local: fs-type1:themes/<customTheme>/worklight/common/js/ (Figura 11).

    Figura 11. Novo arquivo staticprops.ios.js é criado


  7. Outro arquivo que precisa ser renomeado e copiado para a pasta JavaScript comum é wlcommon.js, localizado em: \WLPortal\apps\WLPortalApp\iphone\native\www\default\common\js\.

    Figura 12. wlcommon.js renomeado para ser específico do iOS


  8. O próximo conjunto de arquivos que precisa ser copiado do Worklight para o Portal está localizado na pasta wlclient. Esses arquivos precisam ser renomeados com o namespace "ios":
    • checksum.js
    • cordova.js
    Estes arquivos, localizados em \WLPortal\apps\WLPortalApp\iphone\native\www\default\wlclient\js\, podem ser copiados no estado em que se encontram:
    • json2.js
    • wpgap.ios.js
    Após renomear, copie os quatro arquivos para o WebSphere Portal neste local: fs-type1:themes/<customTheme>/worklight/wlclient/js/.

    Figura 13. Os novos arquivos na pasta JavaScript wlclient


  9. Todos os arquivos necessários para a API do Worklight já estão no lugar e precisam agora ser incluídos na página, com base no dispositivo que está acessando o WebSphere Portal. O JavaScript que precisa ser incluído para Android pode ser obtido diretamente do módulo wl_client criado na Parte 1. Inclua os elementos include de script apropriados em head.jsp para dispositivos móveis Android (Listagem 8).

    Listagem 8. JavaScript para dispositivos móveis Android incluídos em head.jsp
    <c:if test="${deviceClass == 'smartphone'}">
    <!--android devices -->
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/common/js/staticprops.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/cordova.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/common/js/wljq.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/common/js/base.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/messages.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/common/js/wlcommon.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/diagnosticDialog.js" allowRelativeURL=
    "true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/deviceAuthentication.js" 
    allowRelativeURL="true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/window.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/worklight.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/wlclient.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/wlfragments.js" allowRelativeURL=
    "true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/encryptedcache.js" allowRelativeURL=
    "true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/checksum.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/wlgap.android.js" allowRelativeURL="
    true" mode="download" lateBinding="false"/>'></script>
    </c:if>

  10. Em seguida, inclua o JavaScript apropriado para dispositivos iOS em head.jsp. Esta é basicamente a mesma lista que a dos dispositivos Android, o que pode ser verificado nos includes de script definidos em WLPortalApp.html, localizado em \WLPortal\apps\WLPortalApp\iphone\native\www\default\. No entanto, os arquivos com o namespace "ios" substituem os arquivos Android correspondentes, e json2.js foi incluído (Listagem 9).

    Listagem 9. JavaScript para dispositivos móveis iOS incluídos em head.jsp
    <c:if test="${deviceClass == 'smartphone-ios'}">
    <!-- ios devices -->
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/common/js/staticprops.ios.js" allowRelativeURL=
    "true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/cordova.ios.js" allowRelativeURL=
    "true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/common/js/wljq.js" allowRelativeURL="true" mode=
    "download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/common/js/base.js" allowRelativeURL="true" mode=
    "download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/messages.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/common/js/wlcommon.ios.js" allowRelativeURL=
    "true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/diagnosticDialog.js" allowRelativeURL=
    "true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/deviceAuthentication.js" 
    allowRelativeURL="true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/window.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/worklight.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/wlclient.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/wlfragments.js" allowRelativeURL=
    "true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/encryptedcache.js" allowRelativeURL=
    "true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/checksum.ios.js" allowRelativeURL=
    "true" mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/json2.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    	<script type="text/javascript" src='<r:url uri="dav:fs-
    type1/themes/customTheme/worklight/wlclient/js/wlgap.ios.js" allowRelativeURL="true" 
    mode="download" lateBinding="false"/>'></script>
    </c:if>

    Ao entrar em produção, pode ser útil criar camadas de JavaScript para o conjunto de arquivos de cada dispositivo específico. Isso reduziria as solicitações de renderização de página e ajudaria a melhorar o desempenho.
  11. Agora que os arquivos JavaScript do Android foram incluídos através do arquivo head.jsp, você deve remover o módulo wl_client do arquivo profile_worklight.json, localizado em fs-type1:themes/<customTheme>/profiles/.

    Listagem 10. Conjunto original de módulos de profile_worklight.json
    	"moduleIDs": [
    		"wp_theme_portal_80",
    		"wp_portlet_css",
    		"wp_one_ui",
    		"wp_one_ui_dijit",
    		"wp_legacy_layouts",
    		"wp_client_ext",
    		"wp_status_bar",
    		"wp_theme_menus",
    		"wp_theme_skin_region",
    		"wp_theme_high_contrast",
    		"wp_layout_windowstates",
    		"wl_client",
    		"wl_init"
    	],



    Listagem 11. O arquivo profile_worklight.json após wlclient ser removido
    	"moduleIDs": [
    		"wp_theme_portal_80",
    		"wp_portlet_css",
    		"wp_one_ui",
    		"wp_one_ui_dijit",
    		"wp_legacy_layouts",
    		"wp_client_ext",
    		"wp_status_bar",
    		"wp_theme_menus",
    		"wp_theme_skin_region",
    		"wp_theme_high_contrast",
    		"wp_layout_windowstates",
    		"wl_init"
    	],

  12. Como o módulo wl_client foi removido do perfil, é necessário remover o pré-requisito do módulo wl_init. Para fazer isso, abra o arquivo de contribuição worklight.json e remova a definição de pré-requisito, localizada em fs-type1:themes/<customTheme>/contributions.

    Listagem 12. Definição do módulo wl_init original
    {
    	"id":"wl_init",
    	"prereqs":[{
    		"id":"wl_client"
    	},{
    		"id":"wp_client_main"
    	},{
    		"id":"wp_client_ext"
    	}],
    	"contributions":[{
    		"type":"config",
    		"sub-contributions":[{
    			"type":"js",
    			"uris":[{
    				"value":"/worklight/common/js/init.js"
    			}]
    		}]
    	}]
    }



    Listagem 13. O módulo wl_init com o pré-requisito wl_client removido
    {
    		"id":"wl_init",
    		"prereqs":[
    		{
    			"id":"wp_client_main"
    		},{
    			"id":"wp_client_ext"
    		}],
    		"contributions":[{
    			"type":"config",
    			"sub-contributions":[{
    				"type":"js",
    				"uris":[{
    					"value":"/worklight/common/js/init.js"
    				}
    				]
    			}]
    		}]
    	}

Tudo está no lugar certo para que o portal detecte o dispositivo que está acessando o WebSphere Portal e inclua o conjunto de arquivos necessário para fazer a integração corretamente com o Worklight.


Testar o aplicativo

Como este exercício é uma continuação da Parte 1, já há uma amostra para testar a API do Worklight. Essa amostra exibirá o nome e versão do dispositivo na parte superior da página. O teste confirma se essa informação está sendo exibida corretamente no emulador de Android e no simulador de iOS.

  1. Mais uma vez, para desenvolver e implementar o aplicativo, clique com o botão direito no aplicativo e selecione Build All and Deploy. É possível ver o progresso no banner de status inferior direito no Eclipse.
  2. Quando o processo for concluído, clique com o botão direito em WLPortalWLPortalAppAndroid e selecione Run As... > Android Application. Isso ativará o Emulador de Android e o aplicativo exibirá o WebSphere Portal.
  3. Após o aplicativo renderizar o aplicativo do WebSphere Portal, navegue até a página na qual você aplicou o tema personalizado e perfil do Worklight. Se essa página não tiver acesso anônimo, faça login e navegue até a página. Levará alguns segundos para que as configurações do dispositivo sejam carregadas, mas elas aparecerão na parte superior da página, como mostra a Figura 14.

    Figura 14. O emulador de Android mostrando o Portal com a amostra de API do Worklight


  4. Clique com o botão direito em iphone em WLPortalApp e selecione Run As > Xcode project. Isso ativará o aplicativo Xcode, e será preciso executar o aplicativo no emulador de iOS. Quando estiver executando, o aplicativo exibirá o WebSphere Portal.
  5. Após o aplicativo renderizar o aplicativo do WebSphere Portal, mais uma vez, navegue até a página na qual você aplicou o tema personalizado e perfil do Worklight. Você verá o nome e versão do dispositivo na parte superior da página, como mostra a Figura 15.

    Figura 15. O simulador de iOS mostrando o WebSphere Portal com a API Worklight



Conclusão

IBM WebSphere Portal torna fácil customizar os recursos de dispositivo nativo disponíveis para aplicativos da web de diversos canais. A shell do Worklight criada para Android e iOS também pode ser empacotada como um distribuível e publicada na loja de aplicativos ou implementada via MDM, se necessário. O resultado são os recursos completos de gerenciamento de website de diversos canais do WebSphere Portal estendidos para incluir serviços nativos de dispositivo customizados para mais de um dispositivo. Os próximos artigos nesta série discutirão a configuração para autenticação de conexão única e a integração de Worklight e Web Experience Factory, respectivamente.



Download

DescriçãoNomeTamanhoMétodo de download
Sample applicationPart2-sample_files.zip9 KBHTTP

Informações sobre métodos de download


Recursos

Aprender

Obter produtos e tecnologias

Sobre o autor

nível de autor Contribuidor do developerWorks

Jon Lidaka é engenheiro de frontend e trabalha no Research Triangle Park Development Lab da IBM. Durante seu tempo no desenvolvimento de Portal, contribuiu principalmente para o desenvolvimento de temas, com foco em acessibilidade e globalização, e para vários componentes, incluindo portlets de administração e integrador de aplicativo da web. Atualmente, é líder da missão de desenvolvimento para dispositivos móveis do Portal. Jon deu palestras em várias conferências da IBM sobre design de interface com o usuário e otimização de temas do Portal para dispositivos móveis.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=WebSphere, Lotus
ArticleID=848567
ArticleTitle=Forneça uma excepcional experiência da web móvel usando WebSphere Portal e IBM Worklight, Parte 2: Integrando o suporte a diversos dispositivos para páginas do WebSphere Portal
publish-date=12072012