Todos os produtos
Search
Central de documentação

Mobile Platform as a Service:Gerencie pacotes offline

Última atualização: Jun 28, 2026

Gerencie pacotes offline envolve pré-configurar, atualize, baixe, instale e exclua aplicativos H5. Outras operações incluem usar pacotes de recursos globais, obter informações do aplicativo e verifique assinaturas de segurança.

Pré-requisitos

Pré-configurar aplicativos H5

Geralmente, ao abrir um aplicativo H5 pela primeira vez, o download do pacote offline pode não ter sido concluído. Nesse caso, o aplicativo abre usando uma URL de fallback.

Pré-configurar um aplicativo H5 equivale a pré-instalar um aplicativo disponível no pacote de instalação lançado para o cliente. Quando o usuário abre o aplicativo pré-instalado pela primeira vez, ele usa diretamente os recursos do pacote offline, o que melhora a experiência do usuário.

Nota

Pré-configure apenas aplicativos H5 essenciais. Evite pré-configurar aplicativos pouco utilizados.

Para pré-configurar um aplicativo H5, siga estas etapas:

  1. No console de publicação de aplicativos H5, baixe o arquivo de configuração .json do aplicativo H5 e o pacote offline a ser pré-configurado.

  2. Adicione o arquivo .json e o pacote offline à pasta asset do projeto.

  3. Ao iniciar o aplicativo, chame o código de pré-configuração para instalá-lo. O exemplo abaixo ilustra essa chamada:

    MPNebula.loadOfflineNebula("h5_json.json", new MPNebulaOfflineInfo("90000000_1.0.0.6.amr", "90000000", "1.0.0.6"));
    Nota
    • Esta é uma chamada bloqueante. Não invoque o método para pacotes offline integrados na thread principal.

    • Este método aceita apenas uma invocação. Chamadas subsequentes são ignoradas; portanto, transmita as informações de todos os pacotes offline a serem pré-configurados em uma única chamada.

    • Se houver múltiplos pacotes .amr integrados, garanta que todos os arquivos existam. A ausência de qualquer arquivo causa falha na instalação dos demais pacotes offline integrados.

Usar pacotes de recursos globais

Os pacotes de recursos globais do Nebula eliminam a redundância gerada quando vários aplicativos H5 compartilham os mesmos recursos. Por exemplo, um aplicativo React usa o código do framework ReactJS. Agrupar recursos comuns em um pacote global reduz o tamanho dos aplicativos H5.

Normalmente, você deve pré-configurar um pacote de recursos globais para o projeto. Atualizações futuras ainda podem ser entregues pelo console de aplicativos H5.

O exemplo de código a seguir defina o pacote offline com id de aplicativo (appId) 66666692 como pacote de recursos globais. Ele também pré-configura o pacote offline assets/nebulaPreset/66666692. Os métodos são descritos a seguir:

  • getCommonResourceAppList: Notifica o contêiner H5 de que o pacote offline com o id especificado é um pacote de recursos globais. Sem a configuração desse id, o pacote offline integrado não entra em vigor, mesmo que esteja incluído.

  • getH5PresetPkg: Defina o caminho e a versão do pacote de recursos globais integrado. O contêiner H5 carrega o pacote de recursos da pasta de ativos especificada. No entanto, se o servidor identificar uma versão superior, o pacote integrado de versão inferior não será carregado. Alternativamente, use o método loadOffLineNebula mencionado anteriormente para pré-configurar o pacote de recursos globais. Nesse caso, não é necessário defina o caminho e a versão do pacote offline integrado neste método.

    Nota

    Este método aplica-se exclusivamente a pacotes de recursos globais H5.

  • getTinyCommonApp: Retorna apenas o id do pacote de recursos do framework para miniapps. Se o pacote de recursos globais for destinado somente a aplicativos H5, não inclua o id do pacote de recursos comuns neste método.

O código abaixo apresenta um exemplo de classe de implementação de referência:

public class H5AppCenterPresetProviderImpl implements H5AppCenterPresetProvider {
    private static final String TAG = "H5AppCenterPresetProviderImpl";

    // Public resource package for the business. Avoid using a prefix of 666666.
    private static final String COMMON_BIZ_APP = "xxxxxxxx";

    // Miniapp-specific resource package. Do not modify.
    private static final String TINY_COMMON_APP = "66666692";

    // The asset folder for preset packages.
    private final static String NEBULA_APPS_PRE_INSTALL = "nebulaPreset" + File.separator;

    // Collection of preset packages.
    private static final Map<String, H5PresetInfo> NEBULA_LOCAL_PACKAGE_APP_IDS = new HashMap();

    static {

        H5PresetInfo h5PresetInfo2 = new H5PresetInfo();
        // File name in the built-in folder.
        h5PresetInfo2.appId = TINY_COMMON_APP;
        h5PresetInfo2.version = "1.0.0.0";
        h5PresetInfo2.downloadUrl = "";

        NEBULA_LOCAL_PACKAGE_APP_IDS.put(TINY_COMMON_APP, h5PresetInfo2);

    }

    @Override
    public Set<String> getCommonResourceAppList() {
        Set<String> appIdList = new HashSet<String>();
        appIdList.add(getTinyCommonApp());
        appIdList.add(COMMON_BIZ_APP);
        return appIdList;
    }

    @Override
    public H5PresetPkg getH5PresetPkg() {
        H5PresetPkg h5PresetPkg = new H5PresetPkg();
        h5PresetPkg.setPreSetInfo(NEBULA_LOCAL_PACKAGE_APP_IDS);
        h5PresetPkg.setPresetPath(NEBULA_APPS_PRE_INSTALL);
        return h5PresetPkg;
    }

    @Override
    public Set<String> getEnableDegradeApp() {
        return null;
    }

    @Override
    public String getTinyCommonApp() {
        return TINY_COMMON_APP;
    }

    @Override
    public InputStream getPresetAppInfo() {
        return null;
    }

    @Override
    public InputStream getPresetAppInfoObject() {
        return null;
    }
}

Em seguida, execute o código abaixo durante a inicialização do aplicativo:

H5Utils.getH5ProviderManager().setProvider(H5AppCenterPresetProvider.class.getName(), new H5AppCenterPresetProviderImpl());

Atualize aplicativos H5

Por padrão, o Nebula verifica a existência de uma nova versão sempre que um aplicativo H5 é aberto. Para reduzir a carga no servidor, essa verificação respeita um intervalo de tempo, configurado por padrão em 30 minutos. Para buscar imediatamente a versão mais recente disponível, invoque o código a seguir para solicitar a atualização. Recomenda-se execute essa chamada na inicialização do aplicativo ou após o login do usuário.

MPNebula.updateAllApp(new MpaasNebulaUpdateCallback(){
    @Override
    public void onResult(final boolean success, final boolean isLimit, String detailCode) {
        super.onResult(success, isLimit);
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                AUToast.makeToast(NebulaAppActivity.this,
                        success ? R.string.update_success : R.string.update_failure, 2000).show();
            }
        });
    }
});

Baixe aplicativos H5

O MPNebula oferece uma interface para baixar manualmente aplicativos H5:

    /**
     * Download an offline package
     *
     * @param appId                       The ID of the offline package
     * @param mpaasNebulaDownloadCallback The download callback
     */
    public static void downloadApp(final String appId, final MpaasNebulaDownloadCallback mpaasNebulaDownloadCallback)

Instale aplicativos H5

O MPNebula disponibiliza uma interface para instalar manualmente aplicativos H5:

    /**
     * Install an offline package
     *
     * @param appId                      The ID of the offline package
     * @param mpaasNebulaInstallCallback The installation callback
     */
    public static void installApp(final String appId, final MpaasNebulaInstallCallback mpaasNebulaInstallCallback)

Obter informações do aplicativo

Use um método de H5AppProvider para recuperar informações sobre um aplicativo H5:

H5AppProvider provider = H5Utils.getProvider(H5AppProvider.class.getName());
AppInfo appInfo = provider.getAppInfo("10000000");                 // Get the application configuration
boolean isInstalled = provider.isInstalled("10000000", "1.0.0.0"); // Check if a specific version of the application is installed
boolean isAvailable = provider.isAvailable("10000000", "1.0.0.0"); // Check if the offline package for a specific version of the application is downloaded

Verifique assinaturas de segurança

O Nebula possui um mecanismo de verificação de assinatura de pacotes offline para impedir que programas maliciosos alterem pacotes baixados no dispositivo. Ative esse recurso chamando a interface MPNebula para defina os parâmetros de verificação de assinatura. Se você usar a baseline 10.1.60 ou superior, também deverá ative a configuração do contêiner. Para mais detalhes, consulte Configuração do contêiner H5.

  • Invoque a interface MPNebula antes de abrir um pacote offline pela primeira vez. Caso contrário, a inicialização da chave pública falhará. Para mais informações sobre chaves públicas e privadas, consulte Configurar pacotes offline > Gerenciamento de chaves.

  • Independentemente de a verificação de assinatura estar ativada no cliente, ela é executada obrigatoriamente em dispositivos identificados com root.

      /**
       * @param publicKey The public key for signature verification
       */
      public static void enableAppVerification(final String publicKey)

Exclua aplicativos locais

O Nebula fornece uma interface para excluir informações de aplicativos locais. Após a exclusão desses dados, o aplicativo solicita ao servidor um novo download e atualize as informações locais na próxima abertura.

public class MPNebula {
    // appId is the application ID of the offline package or miniapp.
    public static boolean deleteAppInfo(String appId);
}
Nota

As versões mínimas de baseline compatíveis com esta API são 10.1.68.8 e 10.1.60.14.