Uso da Função App em app.js para WeChat Mini Programs

No desenvolvimento de mini programas WeChat, o arquivo app.js é fundamental para configurar a aplicação. A função App é utilizada para registrar um mini programa ou definir variáveis globais. Esta função deve ser chamada exclusivamente em app.js e sua invocação é obrigatória, permitindo apenas uma chamada.

A sintaxe da função App é a seguinte: App(Object), onde o parâmetro Object é um objeto JSON que contém configurações e métodos de ciclo de vida. A seguir, detalha-se a estrutura típica:

// Registro do mini programa com métodos de ciclo de vida e dados globais App({

/**
* aoLancar(Object)
* Descrição: Acionado quando a inicialização do mini programa é concluída, ocorrendo apenas uma vez globalmente.
* Parâmetros: Objeto com as seguintes propriedades:
*      detalhes.caminho                  [String] Caminho de abertura do mini programa
*      detalhes.consulta                 [String] Parâmetros de consulta na abertura
*      detalhes.cena                     [Number] Valor da cena de abertura (para referência de cenas: https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/scene.html)
*      detalhes.ticketCompartilhamento   [String] Informações de compartilhamento, detalhes em https://developers.weixin.qq.com/miniprogram/dev/api/share.html#wxgetshareinfoobject
*      detalhes.infoReferenciador        [Object] Retornado quando a cena envolve abertura a partir de outro mini programa, conta pública ou App
*      detalhes.infoReferenciador.appId          [String] appId da fonte
*      detalhes.infoReferenciador.dadosExtras    [Object] Dados passados da fonte, suportado em cenas 1037 ou 1038
*
* Nota: As propriedades infoReferenciador, appId e dadosExtras estão relacionadas ao valor da cena.
**/
aoLancar : function(detalhes){
},


/**
* aoExibir(Object)
* Descrição: Acionado quando o mini programa é iniciado ou retorna ao primeiro plano a partir do fundo.
* Parâmetros: Objeto idêntico ao de aoLancar.
**/
aoExibir : function(detalhes){
},


/**
* aoEsconder()
* Descrição: Acionado quando o mini programa passa para o segundo plano.
**/
aoEsconder : function(){
},


/**
* aoErro(erro)
* Descrição: Acionado quando ocorre um erro de script ou falha na chamada de API no mini programa.
* Parâmetros: erro [String] Mensagem de erro, incluindo rastreamento de pilha.
**/
aoErro : function(erro){
},


/**
* aoPaginaNaoEncontrada(Object)
* Descrição: Acionado quando uma página solicitada não existe no mini programa.
* Parâmetros: Objeto com as seguintes propriedades:
*      detalhes.caminho         [String] Caminho da página inexistente
*      detalhes.consulta        [Object] Parâmetros de consulta da página inexistente
*      detalhes.ePaginaEntrada  [Boolean] Indica se é a primeira página desta sessão (ex.: ao entrar por compartilhamento, a primeira página pode ser a página de compartilhamento configurada)
*
* Notas:
*      1) Desenvolvedores podem redirecionar dentro do callback (ex.: wx.redirectTo...), mas o tratamento deve ser síncrono; operações assíncronas (como setTimeout) são ineficazes.
*      2) Se não houver listener para aoPaginaNaoEncontrada, o cliente WeChat exibirá uma mensagem nativa de página não encontrada.
*      3) Se o callback redirecionar para outra página inexistente, a mensagem nativa será exibida sem novos callbacks.
**/
aoPaginaNaoEncontrada : function(detalhes){
    this.paginasErro = 2  // Altera a variável global paginasErro via this
},


/**
* Dados personalizados do tipo array ou JSON, compartilhados por todas as páginas do mini programa.
**/
paginasErro : 0,
contador : 1,
minhaArray : [1, 2, 3],
meuJson : {
    "titulo" : "olá mundo!"
}

})


</div>Para acessar dados globais definidos dentro da função App, como a variável contador no exemplo, utilize a função getApp. Sua sintaxe é getApp(Object), onde o parâmetro Object opcional inclui a propriedade allowDefault \[Boolean\] para retornar uma implementação padrão caso o App não esteja definido; nesse caso, as propriedades da implementação padrão serão mescldaas no App.

Cuidados importantes ao usar getApp:

- Não chame getApp() dentro de funções declaradas em App(); utilize this para acessar a instância do aplicativo.
- Após obter a instância via getApp(), não invoque funções de ciclo de vida diretamente.

Exemplo de como acessar a variável global contador em uma página, como index.js:

<div>```

// Obtenção da instância do aplicativo
const instanciaApp = getApp()

// Definição da página com acesso à variável global
Page({
    carregar: function () {
        // Acessando o contador definido no app.js
        console.log( instanciaApp.contador );
    }
})

Tags: WeChat Mini Programs javascript app.js Função App Ciclo de Vida

Publicado em 7-1 17:05