Compartilhar via


Referência da API do SDK do React Native Client

Importante

O Visual Studio App Center está programado para ser desativado em 31 de março de 2025. Embora você possa continuar a usar o Visual Studio App Center até que ele seja totalmente desativado, há várias alternativas recomendadas para as quais você pode considerar migrar.

Saiba mais sobre cronogramas e alternativas de suporte.

O plug-in CodePush é composto por dois componentes:

  1. Um módulo JavaScript, que pode ser importado/necessário e permite que o aplicativo interaja com o serviço durante o tempo de execução (por exemplo, verifique se há atualizações, inspecione os metadados sobre a atualização do aplicativo em execução no momento).

  2. Uma API nativa (Objective-C e Java) que permite que o host do aplicativo React Native se inicialize com o local correto do pacote JS.

As seções a seguir descrevem a forma e o comportamento dessas APIs em detalhes:

Referência da API JavaScript

Quando você precisar react-native-code-pushdo , o objeto de módulo fornece os seguintes métodos de nível superior, além do decorador de componentes de nível raiz:

  • allowRestart: permite que reinicializações programáticas ocorram como resultado da instalação de uma atualização e, opcionalmente, reinicia imediatamente o aplicativo se uma atualização pendente tiver tentado reiniciar o aplicativo enquanto as reinicializações não foram permitidas. Esse método é uma API avançada e só será necessário se o aplicativo não permitir reinicializações explicitamente por meio do disallowRestart método.

  • checkForUpdate: pergunta ao serviço CodePush se a implantação do aplicativo configurada tem uma atualização disponível.

  • disallowRestart: não permite temporariamente que qualquer reinicialização programática ocorra como resultado da instalação de uma atualização do CodePush. Esse método é uma API avançada e é útil quando um componente em seu aplicativo (por exemplo, um processo de integração) precisa garantir que nenhuma interrupção do usuário final possa ocorrer durante seu tempo de vida.

  • getCurrentPackage: recupera os metadados sobre a atualização atualmente instalada (como descrição, tempo de instalação, tamanho).

    Observação

    A partir do v1.10.3-beta módulo CodePush, getCurrentPackage está preterido em favor de getUpdateMetadata*.

  • getUpdateMetadata: recupera os metadados de uma atualização instalada (como descrição, obrigatório).

  • notifyAppReady: notifica o runtime do CodePush de que uma atualização instalada é considerada bem-sucedida. Se você estiver verificando e instalando atualizações manualmente (ou seja, não está usando o método de sincronização para lidar com tudo para você), esse método DEVERÁ ser chamado; caso contrário, o CodePush tratará a atualização como falha e reverterá para a versão anterior na próxima reinicialização do aplicativo.

  • restartApp: reinicia imediatamente o aplicativo. Se houver uma atualização pendente, ela será exibida imediatamente para o usuário final. Caso contrário, chamar esse método tem o mesmo comportamento que o usuário final matando e reiniciando o processo.

  • sincronização: Permite verificar se há uma atualização, baixá-la e instalá-la, tudo com uma única chamada. A menos que você precise de interface do usuário ou comportamento personalizado, recomendamos que a maioria dos desenvolvedores use esse método ao integrar o CodePush em seus aplicativos

Empurrar código

// Wrapper function
codePush(rootComponent: React.Component): React.Component;
codePush(options: CodePushOptions)(rootComponent: React.Component): React.Component;
// Decorator; Requires ES7 support
@codePush
@codePush(options: CodePushOptions)

Usado para envolver um componente React dentro de um componente React de "ordem superior" que sabe como sincronizar o pacote JavaScript do seu aplicativo e os ativos de imagem quando ele é montado. Internamente, o componente de ordem superior chama sync dentro de seu componentDidMount identificador de ciclo de vida, que executa uma verificação de atualização, baixa a atualização se ela existir e instala a atualização para você.

Esse decorador fornece suporte para permitir que você personalize seu comportamento para habilitar facilmente aplicativos com requisitos diferentes. Abaixo estão alguns exemplos de maneiras de usá-lo (você pode escolher um ou até mesmo usar uma combinação):

  1. Sincronização silenciosa na inicialização do aplicativo (o comportamento padrão mais simples). Seu aplicativo baixará automaticamente as atualizações disponíveis e as aplicará na próxima vez que o aplicativo for reiniciado (como o sistema operacional ou o usuário final o eliminou ou o dispositivo foi reiniciado). Dessa forma, toda a experiência de atualização é "silenciosa" para o usuário final, pois ele não vê nenhum prompt de atualização ou reinicialização de aplicativo "sintético".

    // Fully silent update that keeps the app in
    // sync with the server, without ever
    // interrupting the end user
    class MyApp extends Component {}
    MyApp = codePush(MyApp);
    
  2. Sincronização silenciosa sempre que o aplicativo for retomado. O mesmo que 1, exceto que verificamos se há atualizações ou aplicamos uma atualização, se houver, toda vez que o aplicativo retornar ao primeiro plano após ser "colocado em segundo plano".

    // Sync for updates every time the app resumes.
    class MyApp extends Component {}
    MyApp = codePush({ checkFrequency: codePush.CheckFrequency.ON_APP_RESUME, installMode: codePush.InstallMode.ON_NEXT_RESUME })(MyApp);
    
  3. Interativo. Quando uma atualização estiver disponível, solicite permissão ao usuário final antes de baixá-la e aplique a atualização imediatamente. Se uma atualização fosse lançada usando o mandatory sinalizador, o usuário final ainda seria notificado sobre a atualização, mas não teria a opção de ignorá-la.

    // Active update that lets the end user know
    // about each update, and displays it to them
    // immediately after downloading it
    class MyApp extends Component {}
    MyApp = codePush({ updateDialog: true, installMode: codePush.InstallMode.IMMEDIATE })(MyApp);
    
  4. Registre/exiba o progresso. Enquanto o aplicativo estiver sincronizando com o servidor para atualizações, use os codePushStatusDidChange ganchos de evento ou codePushDownloadDidProgress para registrar os diferentes estágios desse processo ou até mesmo exibir uma barra de progresso para o usuário.

    // Make use of the event hooks to keep track of
    // the different stages of the sync process.
    class MyApp extends Component {
        codePushStatusDidChange(status) {
            switch(status) {
                case codePush.SyncStatus.CHECKING_FOR_UPDATE:
                    console.log("Checking for updates.");
                    break;
                case codePush.SyncStatus.DOWNLOADING_PACKAGE:
                    console.log("Downloading package.");
                    break;
                case codePush.SyncStatus.INSTALLING_UPDATE:
                    console.log("Installing update.");
                    break;
                case codePush.SyncStatus.UP_TO_DATE:
                    console.log("Up-to-date.");
                    break;
                case codePush.SyncStatus.UPDATE_INSTALLED:
                    console.log("Update installed.");
                    break;
            }
        }
    
        codePushDownloadDidProgress(progress) {
            console.log(progress.receivedBytes + " of " + progress.totalBytes + " received.");
        }
    }
    MyApp = codePush(MyApp);
    

Opções de Empurrar de Código

O codePush decorador aceita um objeto "options" que permite personalizar vários aspectos do comportamento padrão mencionado acima:

  • checkFrequency (codePush.CheckFrequency) - Especifica quando você deseja verificar se há atualizações. Assume o padrão de codePush.CheckFrequency.ON_APP_START. Consulte a referência de CheckFrequency enumeração para obter uma descrição das opções disponíveis e o que elas fazem.

  • deploymentKey (String) - Especifica a chave de implantação que você deseja consultar para uma atualização. Por padrão, esse valor é derivado do arquivo Info.plist (iOS) e do arquivo MainActivity.java (Android), mas essa opção permite que você o substitua do lado do script se precisar usar dinamicamente uma implantação diferente.

  • installMode (codePush.InstallMode) – especifica quando você deseja instalar atualizações opcionais (aquelas que não estão marcadas como obrigatórias). Assume o padrão de codePush.InstallMode.ON_NEXT_RESTART. Consulte a referência de InstallMode enumeração para obter uma descrição das opções disponíveis e o que elas fazem.

  • mandatoryInstallMode (codePush.InstallMode) - Especifica quando você deseja instalar atualizações, que são marcadas como obrigatórias. Assume o padrão de codePush.InstallMode.IMMEDIATE. Consulte a referência de InstallMode enumeração para obter uma descrição das opções disponíveis e o que elas fazem.

  • minimumBackgroundDuration (Number) - Especifica o número mínimo de segundos para o aplicativo ficar em segundo plano antes de reiniciá-lo. Essa propriedade só se aplica a atualizações instaladas usando InstallMode.ON_NEXT_RESUME ou InstallMode.ON_NEXT_SUSPEND, e pode ser útil para colocar sua atualização na frente dos usuários finais mais cedo, sem ser muito intrusiva. O padrão é 0, que aplica a atualização imediatamente após uma retomada ou a menos que a suspensão do aplicativo seja longa o suficiente para não importar, por mais tempo que esteja em segundo plano.

  • updateDialog (UpdateDialogOptions) – Um objeto "options" usado para determinar se uma caixa de diálogo de confirmação deve ser exibida para o usuário final quando uma atualização estiver disponível e, em caso afirmativo, quais cadeias de caracteres usar. O padrão é null, o que desativa a caixa de diálogo. Definir isso como qualquer true valor habilitará a caixa de diálogo com as cadeias de caracteres padrão, e passar um objeto para esse parâmetro permite habilitar a caixa de diálogo, bem como substituir uma ou mais das cadeias de caracteres padrão. Antes de ativar essa opção em um aplicativo distribuído pela App Store, consulte esta observação.

    A lista a seguir representa as opções disponíveis e seus padrões:

    • appendReleaseDescription (booleano) - Indica se você deseja acrescentar a descrição de uma versão disponível à mensagem de notificação, que é exibida para o usuário final. Assume o padrão de false.

    • descriptionPrefix (String) - Indica a string com a qual você deseja prefixar a descrição da versão, se houver, ao exibir a notificação de atualização para o usuário final. Usa como padrão " Description: "

    • mandatoryContinueButtonLabel (String) – o texto a ser usado para o botão que o usuário final deve pressionar para instalar uma atualização obrigatória. Assume o padrão de "Continue".

    • mandatoryUpdateMessage (String) – o texto usado como o corpo de uma notificação de atualização, quando a atualização é especificada como obrigatória. Assume o padrão de "An update is available that must be installed.".

    • optionalIgnoreButtonLabel (String) – o texto a ser usado para o botão que o usuário final pode pressionar para ignorar uma atualização opcional disponível. Assume o padrão de "Ignore".

    • optionalInstallButtonLabel (String) - O texto a ser usado para o botão que o usuário final pode pressionar para instalar uma atualização opcional. Assume o padrão de "Install".

    • optionalUpdateMessage (String) – o texto usado como o corpo de uma notificação de atualização, quando a atualização é opcional. Assume o padrão de "An update is available. Would you like to install it?".

    • title (String) – o texto usado como cabeçalho de uma notificação de atualização exibida para o usuário final. Assume o padrão de "Update available".

  • rollbackRetryOptions (RollbackRetryOptions) – o mecanismo de repetição de reversão permite que o aplicativo tente reinstalar uma atualização que foi revertida anteriormente (com as restrições especificadas nas opções). É um objeto de "opções" usado para determinar se uma nova tentativa de reversão deve ocorrer e, em caso afirmativo, quais configurações usar para a nova tentativa de reversão. O padrão é nulo, o que tem o efeito de desabilitar o mecanismo de repetição. Definir isso como qualquer valor verdadeiro habilitará o mecanismo de repetição com as configurações padrão, e passar um objeto para esse parâmetro permite habilitar a repetição de reversão, bem como substituir um ou mais dos valores padrão.

    A lista a seguir representa as opções disponíveis e seus padrões:

    • delayInHours (Number) – Especifica o tempo mínimo em horas que o aplicativo aguardará após a reversão mais recente antes de tentar reinstalar o mesmo pacote revertido. Não pode ser menor que 0. Pode ser número flutuante. Assume o padrão de 24.

    • maxRetryAttempts (Número) – Especifica o número máximo de tentativas de repetição que o aplicativo pode fazer antes de parar de tentar. Não pode ser menor que 1. Assume o padrão de 1.

codePushStatusDidChange (gancho de evento)

Chamado quando o processo de sincronização passa de um estágio para outro no processo de atualização geral. O gancho de evento é chamado com um código de status que representa o estado atual e pode ser qualquer um dos SyncStatus valores.

codePushDownloadDidProgress (gancho de evento)

Chamado periodicamente quando uma atualização disponível está sendo baixada do servidor CodePush. O método é chamado com um DownloadProgress objeto, que contém as duas propriedades a seguir:

  • totalBytes (Number) – o número total de bytes que devem ser recebidos para esta atualização (esse é o tamanho do conjunto de arquivos, que foi alterado em relação à versão anterior).

  • receivedBytes (Number) - O número de bytes baixados até o momento, que podem ser usados para acompanhar o progresso do download.

codePush.allowRestart

codePush.allowRestart(): void;

Repermite a ocorrência de reinicializações programáticas que, de outra forma, teriam sido rejeitadas devido a uma chamada anterior para disallowRestart. Se disallowRestart nunca foi chamado em primeiro lugar, chamar esse método resulta em uma não operação.

Se uma atualização do disallowRestart CodePush estiver pendente no momento, que tentou reiniciar o aplicativo (por exemplo, ele usou InstallMode.IMMEDIATE), mas foi bloqueada por ter sido chamada, a chamada allowRestart resultará em uma reinicialização imediata. Essa reinicialização permite que a atualização seja aplicada o mais rápido possível, sem interromper o usuário final durante fluxos de trabalho críticos (por exemplo, um processo de integração).

Por exemplo, a chamada allowRestart dispararia uma reinicialização imediata se um dos três cenários mencionados nos disallowRestart documentos ocorresse depois disallowRestart de ser chamado. No entanto, a chamada allowRestart não dispararia uma reinicialização se os seguintes pontos forem verdadeiros:

  1. Nenhuma atualização do CodePush foi instalada desde a última vez disallowRestart que foi chamada e, portanto, não há necessidade de reiniciar de qualquer maneira.

  2. No momento, há uma atualização pendente do CodePush, mas ela foi instalada por meio InstallMode.ON_NEXT_RESTARTdo , portanto, uma reinicialização programática não é necessária.

  3. No momento, há uma atualização pendente do CodePush, mas ela foi instalada por meio InstallMode.ON_NEXT_RESUME e o aplicativo ainda não foi colocado em segundo plano, portanto, ainda não há necessidade de reiniciar programaticamente.

  4. Nenhuma chamada foi feita desde restartApp a última vez disallowRestart que foi chamada.

Esse comportamento garante que nenhuma reinicialização seja acionada como resultado da chamada allowRestart , a menos que uma tenha sido explicitamente solicitada durante o período não permitido. Desta forma, allowRestart é semelhante a chamar restartApp(true), exceto que o primeiro só acionará uma reinicialização se a atualização atualmente pendente quiser reiniciar, mas o último será reiniciado enquanto uma atualização estiver pendente.

Consulte disallowRestart para obter um exemplo de como esse método pode ser usado.

codePush.checkForUpdate

codePush.checkForUpdate(deploymentKey: String = null, handleBinaryVersionMismatchCallback: (update: RemotePackage) => void): Promise<RemotePackage>;

Consulta o serviço CodePush para ver se a implantação do aplicativo configurada tem uma atualização disponível. Por padrão, ele usará a chave de implantação configurada no arquivo Info.plist (iOS) ou no arquivo MainActivity.java (Android), mas você pode substituí-la especificando um valor por meio do parâmetro opcionaldeploymentKey. Isso pode ser útil quando você deseja "redirecionar" dinamicamente um usuário para uma implantação específica, como permitir "acesso antecipado" por meio de um easter egg ou uma opção de configuração do usuário.

O segundo parâmetro handleBinaryVersionMismatchCallback opcional é uma função de retorno de chamada opcional que pode ser usada para notificar o usuário se houver alguma atualização binária. Por exemplo, considere um caso de uso em que a versão binária atualmente instalada é 1.0.1 com um rótulo (rótulo de push de código) v1. Posteriormente, o código nativo foi alterado no ciclo de desenvolvimento e a versão binária foi atualizada para 1.0.2. Quando uma verificação de atualização de codepush é disparada, ignoramos as atualizações com incompatibilidade de versão binária (porque a atualização não está direcionada para a versão binária do aplicativo instalado no momento). Nesse caso, o aplicativo instalado (1.0.1) ignorará a atualização direcionada à versão 1.0.2. Você pode usar handleBinaryVersionMismatchCallback para fornecer um gancho para lidar com essas situações.

Importante

Tenha cuidado ao usar alertas nesse retorno de chamada se você estiver desenvolvendo um aplicativo iOS, devido ao processo de revisão da App Store : os aplicativos não devem forçar os usuários a classificar o aplicativo, revisá-lo, baixar outros aplicativos ou outras ações semelhantes para acessar a funcionalidade, o conteúdo ou o uso do aplicativo.

Esse método retorna um Promise, que é resolvido para um dos dois valores possíveis:

  1. null se não houver uma atualização disponível. Isso pode acontecer nos seguintes cenários:

    1. A implantação configurada não contém nenhuma versão e, portanto, nada para atualizar.
    2. A versão mais recente dentro da implantação configurada está direcionada a uma versão binária diferente da que você está executando atualmente (mais antiga ou mais recente).
    3. O aplicativo em execução no momento já tem a versão mais recente da implantação configurada e, portanto, não precisa dela novamente.
    4. A versão mais recente na implantação configurada está marcada como desabilitada no momento, portanto, não é permitido baixá-la.
    5. A versão mais recente dentro da implantação configurada está em um estado de "distribuição ativa" e o dispositivo solicitante não se enquadra na porcentagem de usuários qualificados para ela.
  2. Uma RemotePackage instância, que representa uma atualização disponível que pode ser inspecionada ou baixada posteriormente.

Exemplo de uso:

codePush.checkForUpdate()
.then((update) => {
    if (!update) {
        console.log("The app is up to date!");
    } else {
        console.log("An update is available! Should we download it?");
    }
});

codePush.disallowRestart

codePush.disallowRestart(): void;

Não permite temporariamente que reinicializações programáticas ocorram como resultado de um dos seguintes cenários:

  1. Uma atualização do CodePush é instalada usando InstallMode.IMMEDIATE

  2. Uma atualização do CodePush é instalada usando InstallMode.ON_NEXT_RESUME e o aplicativo é retomado em segundo plano (opcionalmente, sendo limitado pela minimumBackgroundDuration propriedade)

  3. O restartApp método foi denominado

    Observação

    As etapas 1 e 2 funcionam efetivamente chamando restartApp por você, para que você possa pensar em bloquear qualquer chamada para restartApp, independentemente de disallowRestart seu aplicativo chamá-la direta ou indiretamente.

Depois de chamar esse método, todas as chamadas para sync ainda teriam permissão para verificar se há uma atualização, baixá-la e instalá-la, mas uma tentativa de reiniciar o aplicativo seria enfileirada até allowRestart ser chamada. Dessa forma, a solicitação de reinicialização é capturada e pode ser "liberada" sempre que você quiser permitir que ela ocorra.

Essa é uma API avançada e é útil principalmente quando componentes individuais em seu aplicativo (como um processo de integração) precisam garantir que nenhuma interrupção do usuário final possa ocorrer durante seu tempo de vida, enquanto continua a permitir que o aplicativo continue sincronizando com o servidor CodePush em seu próprio ritmo e usando os modos de instalação apropriados. Isso tem o benefício de permitir que o aplicativo descubra e baixe as atualizações disponíveis o mais rápido possível, além de evitar interrupções durante as principais experiências do usuário final.

Como alternativa, você também pode usar InstallMode.ON_NEXT_RESTART a chamada sync whenever (que nunca tentará reiniciar programaticamente o aplicativo) e, em seguida, chamar restartApp explicitamente em pontos do aplicativo que são "seguros" para fazer isso. disallowRestart fornece uma abordagem alternativa para isso quando o código que sincroniza com o servidor CodePush é separado do código/componentes que desejam impor uma política de não reinicialização.

Exemplo de uso:

class OnboardingProcess extends Component {
    ...

    componentWillMount() {
        // Ensure that any CodePush updates that are
        // synchronized in the background can't trigger
        // a restart while this component is mounted.
        codePush.disallowRestart();
    }

    componentWillUnmount() {
        // Reallow restarts, and optionally trigger
        // a restart if one was currently pending.
        codePush.allowRestart();
    }

    ...
}

codePush.getCurrentPackage

Observação

Esse método é considerado preterido a partir do v1.10.3-beta módulo CodePush. Se você estiver executando esta versão (ou mais recente), recomendamos usar o codePush.getUpdateMetadata instead, pois ele tem um comportamento mais previsível.

codePush.getCurrentPackage(): Promise<LocalPackage>;

Recupera os metadados sobre o "pacote" atualmente instalado (como descrição, tempo de instalação). Isso pode ser útil para cenários como exibir uma caixa de diálogo "o que há de novo?" depois que uma atualização foi aplicada ou verificar se há uma atualização pendente que está aguardando para ser aplicada por meio de uma retomada ou reinicialização.

Esse método retorna um Promise, que é resolvido para um dos dois valores possíveis:

  1. null se o aplicativo estiver executando o pacote JS do binário e não uma atualização do CodePush. Isso ocorre nos seguintes cenários:

    1. O usuário final instalou o binário do aplicativo e ainda não instalou uma atualização do CodePush
    2. O usuário final instalou uma atualização do binário (por exemplo, do repositório), que limpou as atualizações antigas do CodePush e deu precedência de volta ao binário JS no binário.
  2. Uma LocalPackage instância, que representa os metadados da atualização do CodePush em execução no momento.

Exemplo de uso:

codePush.getCurrentPackage()
.then((update) => {
    // If the current app "session" represents the first time
    // this update has run, and it had a description provided
    // with it upon release, let's show it to the end user
    if (update.isFirstRun && update.description) {
        // Display a "what's new?" modal
    }
});

codePush.getUpdateMetadata

codePush.getUpdateMetadata(updateState: UpdateState = UpdateState.RUNNING): Promise<LocalPackage>;

Recupera os metadados de uma atualização instalada (como descrição, obrigatório) cujo estado corresponde ao parâmetro especificado updateState . Isso pode ser útil para cenários como exibir uma caixa de diálogo "o que há de novo?" depois que uma atualização foi aplicada ou verificar se há uma atualização pendente que está aguardando para ser aplicada por meio de uma retomada ou reinicialização. Para obter mais informações sobre os possíveis estados de atualização e o que eles representam, consulte a referência UpdateState.

Esse método retorna um Promise, que é resolvido para um dos dois valores possíveis:

  1. null se uma atualização com o estado especificado não existir no momento. Isso ocorre nos seguintes cenários:

    1. O usuário final ainda não instalou nenhuma atualização do CodePush e é por isso que nenhum metadado está disponível para nenhuma atualização, independentemente do que você especificar como parâmetro updateState .

    2. O usuário final instalou uma atualização do binário (por exemplo, do repositório), que limpou as atualizações antigas do CodePush e deu precedência de volta ao binário JS no binário. Ele exibiria o mesmo comportamento que # 1

    3. O updateState parâmetro é definido como UpdateState.RUNNING, mas o aplicativo não está executando uma atualização do CodePush no momento. Pode haver uma atualização pendente, mas o aplicativo ainda não foi reiniciado para torná-lo ativo.

    4. O updateState parâmetro é definido como UpdateState.PENDING, mas o aplicativo não tem nenhuma atualização pendente no momento.

  2. Uma LocalPackage instância, que representa os metadados para a atualização do CodePush solicitada no momento (em execução ou pendente).

Exemplo de uso:

// Check if there's currently a CodePush update running, and if
// so, register it with the HockeyApp SDK (https://github.com/slowpath/react-native-hockeyapp)
// so that crash reports will correctly display the JS bundle version the user was running.
codePush.getUpdateMetadata().then((update) => {
    if (update) {
        hockeyApp.addMetadata({ CodePushRelease: update.label });
    }
});

// Check to see if there's still an update pending.
codePush.getUpdateMetadata(UpdateState.PENDING).then((update) => {
    if (update) {
        // There's a pending update, do we want to force a restart?
    }
});

codePush.notifyAppReady

codePush.notifyAppReady(): Promise<void>;

Notifica o runtime do CodePush de que uma atualização recém-instalada deve ser considerada bem-sucedida e, portanto, uma reversão automática do lado do cliente não é necessária. É obrigatório chamar essa função em algum lugar no código do pacote atualizado. Caso contrário, na próxima vez que o aplicativo for reiniciado, o runtime do CodePush assumirá que a atualização instalada falhou e reverterá para a versão anterior. Esse comportamento existe para ajudar a garantir que os usuários finais não sejam bloqueados por uma atualização interrompida.

Se você estiver usando a sync função e fazendo sua verificação de atualização na inicialização do aplicativo, não precisará chamá-la notifyAppReady manualmente, pois sync a chamará para você. Esse comportamento existe devido à suposição de que quando sync é chamado em seu aplicativo, ele representa uma boa aproximação de uma inicialização bem-sucedida.

Observação

Esse método também tem o alias de notifyApplicationReady (para compatibilidade com versões anteriores).

codePush.restartApp

codePush.restartApp(onlyIfUpdateIsPending: Boolean = false): void;

Reinicia imediatamente o aplicativo. Se um valor verdadeiro for fornecido ao onlyIfUpdateIsPending parâmetro, o aplicativo só será reiniciado se houver realmente uma atualização pendente aguardando para ser aplicada.

Esse método é para cenários avançados e é útil principalmente quando as seguintes condições são verdadeiras:

  1. Seu aplicativo está especificando um valor de modo de instalação de ON_NEXT_RESTART ou ON_NEXT_RESUME ao chamar os sync métodos or LocalPackage.install . Isso não se aplica à atualização até que o aplicativo seja reiniciado (pelo usuário final ou pelo sistema operacional) ou retomado e, portanto, a atualização não será exibida imediatamente para o usuário final.

  2. Você tem um evento de usuário específico do aplicativo (como o usuário final navegou de volta para a rota inicial do aplicativo) que permite aplicar a atualização de maneira discreta e, potencialmente, obtém a atualização para o usuário final antes de esperar até a próxima reinicialização ou retomada.

codePush.sync

codePush.sync(options: Object, syncStatusChangeCallback: function(syncStatus: Number), downloadProgressCallback: function(progress: DownloadProgress), handleBinaryVersionMismatchCallback: function(update: RemotePackage)): Promise<Number>;

Sincroniza o pacote JavaScript e os ativos de imagem do aplicativo com a versão mais recente para a implantação configurada. Ao contrário do método checkForUpdate , que verifica a presença de uma atualização e permite que você controle o que fazer em seguida, sync lida com a experiência de verificação, download e instalação de atualização para você.

Esse método fornece suporte para dois "modos" diferentes (mas personalizáveis) para habilitar facilmente aplicativos com requisitos diferentes:

  1. O modo silencioso (o comportamento padrão) baixa automaticamente as atualizações disponíveis e as aplica na próxima vez que o aplicativo for reiniciado (por exemplo, o sistema operacional ou o usuário final o eliminou ou o dispositivo foi reiniciado). Dessa forma, toda a experiência de atualização é "silenciosa" para o usuário final, pois ele não vê nenhum prompt de atualização ou reinicialização de aplicativo "sintético".

  2. O modo ativo, que quando uma atualização está disponível, solicita permissão ao usuário final antes de baixá-la e, em seguida, aplica imediatamente a atualização. Se uma atualização fosse lançada usando o mandatory sinalizador, o usuário final ainda seria notificado sobre a atualização, mas não teria a opção de ignorá-la.

Exemplo de uso:

// Fully silent update that keeps the app in
// sync with the server, without ever
// interrupting the end user
codePush.sync();

// Active update, which lets the end user know
// about each update, and displays it to them
// immediately after downloading it
codePush.sync({ updateDialog: true, installMode: codePush.InstallMode.IMMEDIATE });

Dica

Se você quiser decidir se deseja verificar ou baixar uma atualização disponível com base no nível de bateria do dispositivo do usuário final, nas condições da rede etc., encapsule a chamada em sync uma condição que garanta que você a chame apenas quando desejado.

Opções de sincronização

Embora o sync método tente facilitar a realização de atualizações silenciosas e ativas com pouca configuração, ele aceita um objeto "options" que permite personalizar muitos aspectos do comportamento padrão mencionado acima. As opções disponíveis são idênticas ao CodePushOptions, com exceção da checkFrequency opção:

Exemplo de uso:

// Use a different deployment key for this
// specific call, instead of the one configured
// in the Info.plist file
codePush.sync({ deploymentKey: "KEY" });

// Download the update silently, but install it on
// the next resume, as long as at least 5 minutes
// has passed since the app was put into the background.
codePush.sync({ installMode: codePush.InstallMode.ON_NEXT_RESUME, minimumBackgroundDuration: 60 * 5 });

// Download the update silently, and install optional updates
// on the next restart, but install mandatory updates on the next resume.
codePush.sync({ mandatoryInstallMode: codePush.InstallMode.ON_NEXT_RESUME });

// Changing the title displayed in the
// confirmation dialog of an "active" update
codePush.sync({ updateDialog: { title: "An update is available!" } });

// Displaying an update prompt which includes the
// description for the CodePush release
codePush.sync({
   updateDialog: {
    appendReleaseDescription: true,
    descriptionPrefix: "\n\nChange log:\n"
   },
   installMode: codePush.InstallMode.IMMEDIATE
});

// Shortening the retry delay and increasing
// the number of maximum retry attempts
// in comparison to defaults
codePush.sync({
   rollbackRetryOptions: {
    delayInHours: 8,
    maxRetryAttempts: 3
   }
});

Além das opções, o sync método também aceita vários parâmetros de função opcionais, que permitem que você assine o ciclo de vida do "pipeline" para exibir a interface do usuário adicional conforme necessário (como um "modal de verificação de atualização ou um modal de progresso de sync download):

  • syncStatusChangedCallback ((syncStatus: Number) => void) - Chamado quando o processo de sincronização passa de um estágio para outro no processo de atualização geral. O método é chamado com um código de status, que representa o estado atual e pode ser qualquer um dos SyncStatus valores.

  • downloadProgressCallback ((progress: DownloadProgress) => void) - Chamado periodicamente quando uma atualização disponível está sendo baixada do servidor CodePush. O método é chamado com um DownloadProgress objeto, que contém as duas propriedades a seguir:

    • totalBytes (Number) – o número total de bytes que devem ser recebidos para esta atualização (esse é o tamanho do conjunto de arquivos, que foi alterado em relação à versão anterior).

    • receivedBytes (Number) - O número de bytes baixados até o momento, que podem ser usados para acompanhar o progresso do download.

  • handleBinaryVersionMismatchCallback ((update: RemotePackage) => void) - Chamado quando há alguma atualização binária disponível. O método é chamado com um RemotePackage objeto. Consulte a seção codePush.checkForUpdate para obter mais detalhes.

Exemplo de uso:

// Prompt the user when an update is available
// and then display a "downloading" modal
codePush.sync({ updateDialog: true },
  (status) => {
      switch (status) {
          case codePush.SyncStatus.DOWNLOADING_PACKAGE:
              // Show "downloading" modal
              break;
          case codePush.SyncStatus.INSTALLING_UPDATE:
              // Hide "downloading" modal
              break;
      }
  },
  ({ receivedBytes, totalBytes, }) => {
    /* Update download modal progress */
  }
);

Esse método retorna um Promise, que é resolvido para um SyncStatus código que indica por que a sync chamada foi bem-sucedida. Esse código pode ser um dos seguintes SyncStatus valores:

  • codePush.SyncStatus.UP_TO_DATE (4) – O aplicativo está atualizado com o servidor CodePush.

  • codePush.SyncStatus.UPDATE_IGNORED (5) - O aplicativo tinha uma atualização opcional, que o usuário final optou por ignorar. (Isso só é aplicável quando o updateDialog é usado)

  • codePush.SyncStatus.UPDATE_INSTALLED (6) - A atualização foi instalada e será executada imediatamente após o retorno da syncStatusChangedCallback função ou na próxima vez que o aplicativo for retomado/reiniciado, dependendo do InstallMode especificado em SyncOptions.

  • codePush.SyncStatus.SYNC_IN_PROGRESS (7) – Há uma operação em andamento sync em execução que impede que a chamada atual seja executada.

O sync método pode ser chamado em qualquer lugar que você queira verificar se há uma atualização. Isso pode estar no componentWillMount evento do ciclo de vida do seu componente raiz, no manipulador onPress de um <TouchableHighlight> componente, no retorno de chamada de um cronômetro periódico ou em qualquer outra coisa que faça sentido para suas necessidades. Assim como o checkForUpdate método, ele faz a solicitação de rede para verificar se há uma atualização em segundo plano, para que não afete a capacidade de resposta do thread da interface do usuário ou do thread JavaScript.

Objetos de pacote

Os checkForUpdate métodos and getUpdateMetadata retornam Promise objetos que, quando resolvidos, fornecem acesso a objetos "package". O pacote representa a atualização do código e quaisquer metadados extras (como descrição, obrigatório?). A API CodePush tem a distinção entre os seguintes tipos de pacotes:

  • LocalPackage: representa uma atualização baixada que já está em execução ou foi instalada e está aguardando a reinicialização do aplicativo.

  • RemotePackage: representa uma atualização disponível no servidor CodePush que ainda não foi baixada.

LocalPackage

Contém detalhes sobre uma atualização que foi baixada localmente ou já instalada. Você pode obter uma referência a uma instância desse objeto chamando o método no nível getUpdateMetadata do módulo ou como o valor da promessa retornada pelo RemotePackage.download método.

Propriedades
  • appVersion: a versão binária do aplicativo da qual esta atualização depende. Esse é o valor que foi especificado por meio do appStoreVersion parâmetro ao chamar o comando da release CLI. (Cadeia de caracteres)
  • deploymentKey: a chave de implantação usada originalmente para baixar esta atualização. (Cadeia de caracteres)
  • description: a descrição da atualização. Esse é o mesmo valor que você especificou na CLI quando lançou a atualização. (Cadeia de caracteres)
  • failedInstall: indica se esta atualização foi instalada anteriormente, mas foi revertida. O sync método ignorará automaticamente as atualizações, que falharam anteriormente, portanto, você só precisa se preocupar com essa propriedade se estiver usando checkForUpdate. (Booleano)
  • isFirstRun: indica se esta é a primeira vez que a atualização foi executada após a instalação. Isso é útil para determinar se você deseja mostrar um "O que há de novo?" UI para o usuário final após a instalação de uma atualização. (Booleano)
  • isMandatory: indica se a atualização é considerada obrigatória. Esse é o valor especificado na CLI quando a atualização foi lançada. (Booleano)
  • isPending: Indica se esta atualização está em um estado "pendente". Quando true, isso significa que a atualização foi baixada e instalada, mas a reinicialização do aplicativo necessária para aplicá-la ainda não ocorreu, e é por isso que suas alterações não estão visíveis para o usuário final no momento. (Booleano)
  • label: o rótulo interno fornecido automaticamente à atualização pelo servidor CodePush, como v5. Esse valor identifica exclusivamente a atualização em sua implantação. (Cadeia de caracteres)
  • packageHash: o valor de hash SHA da atualização. (Cadeia de caracteres)
  • packageSize: o tamanho do código contido na atualização, em bytes. (Número)
Métodos
  • install(installMode: codePush.InstallMode = codePush.InstallMode.ON_NEXT_RESTART, minimumBackgroundDuration = 0): Promise<void>: instala a atualização salvando-a no local no disco em que o runtime espera encontrar a versão mais recente do aplicativo. O installMode parâmetro controla quando as alterações são apresentadas ao usuário final. O valor padrão é aguardar até a próxima reinicialização do aplicativo para exibir as alterações, mas você pode consultar a InstallMode referência de enumeração para obter uma descrição das opções disponíveis e o que elas fazem. Se o installMode parâmetro estiver definido como InstallMode.ON_NEXT_RESUME, o minimumBackgroundDuration parâmetro permitirá que você controle por quanto tempo o aplicativo deve estar em segundo plano antes de forçar a instalação depois que ela for retomada.

Pacote Remoto

Contém detalhes sobre uma atualização que está disponível para download no servidor CodePush. Você obtém uma referência a uma instância desse objeto chamando o checkForUpdate método quando uma atualização está disponível. Se você estiver usando a sync API, não precisa se preocupar com o RemotePackage, pois ele cuidará do processo de download e instalação automaticamente para você.

Propriedades

O RemotePackage herda todas as mesmas propriedades que o LocalPackage, mas inclui uma adicional:

  • downloadUrl: a URL em que o pacote está disponível para download. Essa propriedade só é necessária para uso avançado, pois o download método manipulará automaticamente a aquisição de atualizações para você. (Cadeia de caracteres)
Métodos
  • download(downloadProgressCallback?: Function): Promise<LocalPackage>: Baixa a atualização disponível do serviço CodePush. Se a downloadProgressCallback for especificado, ele será chamado periodicamente com um DownloadProgress objeto ({ totalBytes: Number, receivedBytes: Number }) que relata o progresso do download até que ele seja concluído. Retorna uma promessa que é resolvida com o LocalPackage.

Enumerações

A API do CodePush inclui as seguintes enumerações, que podem ser usadas para personalizar a experiência de atualização:

InstallMode

Essa enumeração especifica quando você deseja que uma atualização instalada seja realmente aplicada e pode ser passada para os sync métodos or LocalPackage.install . Ele inclui os seguintes valores:

  • codePush.InstallMode.IMMEDIATE (0) – indica que você deseja instalar a atualização e reiniciar o aplicativo imediatamente. Esse valor é apropriado para cenários de depuração, bem como ao exibir um prompt de atualização para o usuário, pois ele esperaria ver as alterações imediatamente após aceitar a instalação. Além disso, esse modo pode ser usado para impor atualizações obrigatórias, pois remove a latência potencialmente indesejada entre a instalação da atualização e a próxima vez que o usuário final reiniciar ou retomar o aplicativo.

  • codePush.InstallMode.ON_NEXT_RESTART (1) - Indica que você deseja instalar a atualização, mas não forçar a reinicialização do aplicativo. Quando o aplicativo for reiniciado "naturalmente" (por causa do sistema operacional ou do usuário final que o matou), a atualização será escolhida sem problemas. Esse valor é apropriado ao fazer atualizações silenciosas, pois provavelmente é prejudicial para o usuário final se o aplicativo for reiniciado repentinamente do nada. Eles não perceberiam que uma atualização foi baixada. Esse é o modo padrão usado para os sync métodos e LocalPackage.install .

  • codePush.InstallMode.ON_NEXT_RESUME (2) - Indica que você deseja instalar a atualização, mas não deseja reiniciar o aplicativo até a próxima vez que o usuário final o retomar em segundo plano. Dessa forma, você não interrompe a sessão atual, mas pode obter a atualização na frente deles antes de ter que esperar pela próxima reinicialização natural. Esse valor é apropriado para instalações silenciosas que podem ser aplicadas na retomada de forma não invasiva.

  • codePush.InstallMode.ON_NEXT_SUSPEND (3) – Indica que você deseja instalar a atualização enquanto ela está em segundo plano, mas somente depois de ficar em segundo plano por minimumBackgroundDuration segundos (0 por padrão), para que o contexto do usuário não seja perdido, a menos que a suspensão do aplicativo seja longa o suficiente para não importar.

Frequência de verificação

Essa enumeração especifica quando você deseja que seu aplicativo seja sincronizado com o servidor para atualizações e pode ser passada para o codePushify decorador. Ele inclui os seguintes valores:

  • codePush.CheckFrequency.ON_APP_START (0) - Indica que você deseja verificar se há atualizações sempre que o processo do aplicativo for iniciado.

  • codePush.CheckFrequency.ON_APP_RESUME (1) - Indica que você deseja verificar se há atualizações sempre que o aplicativo for trazido de volta ao primeiro plano após ser "colocado em segundo plano" (o usuário pressionou o botão home, o aplicativo inicia um processo de pagamento separado e assim por diante).

  • codePush.CheckFrequency.MANUAL (2) - Desabilite a verificação automática de atualizações, mas verifique apenas quando codePush.sync() for chamado no código do aplicativo.

Status de sincronização

Essa enumeração syncStatusChangedCallback é fornecida à função que pode ser passada para o sync método, para se conectar ao processo de atualização geral. Ele inclui os seguintes valores:

  • codePush.SyncStatus.CHECKING_FOR_UPDATE (0) - O servidor CodePush está sendo consultado para uma atualização.
  • codePush.SyncStatus.AWAITING_USER_ACTION (1) - Uma atualização está disponível e uma caixa de diálogo de confirmação foi mostrada ao usuário final. (Isso só é aplicável quando o updateDialog é usado)
  • codePush.SyncStatus.DOWNLOADING_PACKAGE (2) - Uma atualização disponível está sendo baixada do servidor CodePush.
  • codePush.SyncStatus.INSTALLING_UPDATE (3) - Uma atualização disponível foi baixada e está prestes a ser instalada.
  • codePush.SyncStatus.UP_TO_DATE (4) – O aplicativo está totalmente atualizado com a implantação configurada.
  • codePush.SyncStatus.UPDATE_IGNORED (5) - O aplicativo tem uma atualização opcional, que o usuário final optou por ignorar. (Isso só é aplicável quando o updateDialog é usado)
  • codePush.SyncStatus.UPDATE_INSTALLED (6) - Uma atualização disponível foi instalada e será executada imediatamente após o retorno da syncStatusChangedCallback função ou na próxima vez que o aplicativo for retomado/reiniciado, dependendo do InstallMode especificado em SyncOptions.
  • codePush.SyncStatus.SYNC_IN_PROGRESS (7) – Há uma operação em andamento sync impedindo que a chamada atual seja executada.
  • codePush.SyncStatus.UNKNOWN_ERROR (-1) - A operação de sincronização encontrou um erro desconhecido.

UpdateState

Essa enumeração especifica o estado em que uma atualização está atualmente e pode ser especificada ao chamar o getUpdateMetadata método. Ele inclui os seguintes valores:

  • codePush.UpdateState.RUNNING (0) – indica que uma atualização representa a versão do aplicativo que está em execução no momento. Isso pode ser útil para identificar atributos sobre o aplicativo, para cenários como exibir a descrição da versão em uma caixa de diálogo "o que há de novo?" ou relatar a versão mais recente para um serviço de análise ou relatório de falhas.

  • codePush.UpdateState.PENDING (1) – Indica que uma atualização foi instalada, mas o aplicativo ainda não foi reiniciado para aplicá-la. Isso pode ser útil para determinar se há uma atualização pendente, que talvez você queira forçar uma reinicialização programática (via restartApp) para aplicar.

  • codePush.UpdateState.LATEST (2) - Indica que uma atualização representa a versão mais recente disponível e pode estar em execução ou pendente.

Referência da API Objective-C (iOS)

A API Objective-C é disponibilizada importando o cabeçalho para o CodePush.h arquivo AppDelegate.m e consiste em uma única classe pública chamada CodePush.

CodePush

Contém métodos estáticos para recuperar o NSURL que representa o arquivo de pacote JavaScript mais recente e pode ser passado para o RCTRootViewmétodo do initWithBundleURL ao inicializar seu aplicativo no arquivo AppDelegate.m .

Os CodePush métodos da classe podem ser considerados como resolvedores compostos, que sempre carregam o pacote apropriado, para acomodar os seguintes cenários:

  1. Quando um usuário final instala seu aplicativo da loja (como 1.0.0), ele recebe o pacote JS contido no binário. Esse é o comportamento que você obteria sem usar o CodePush, mas garantimos que ele não interrompa :)

  2. Assim que você começar a lançar atualizações do CodePush, os usuários finais receberão o pacote JS que representa a versão mais recente da implantação configurada. Esse é o comportamento que permite iterar além do que você enviou para a loja.

  3. Assim que você lançar uma atualização para a loja de aplicativos (como 1.1.0) e seus usuários finais a atualizarem, eles receberão novamente o pacote JS contido no binário. Esse comportamento garante que as atualizações do CodePush direcionadas a uma versão binária anterior não sejam usadas (já que não sabemos se elas funcionariam) e seus usuários finais sempre terão uma versão funcional do seu aplicativo.

  4. Repita #2 e #3 à medida que os lançamentos do CodePush e os lançamentos da loja de aplicativos continuam no infinito (e além?)

Devido a esse comportamento, você pode implantar atualizações com segurança nas lojas de aplicativos e no CodePush, conforme necessário, e ter certeza de que os usuários finais sempre obterão a versão mais recente.

Métodos

  • (NSURL *)bundleURL - Retorna o pacote NSURL JS mais recente, conforme descrito acima. Esse método pressupõe que o nome do pacote JS contido no binário do aplicativo seja main.jsbundle.

  • (NSURL *)bundleURLForResource:(NSString *)resourceName – equivalente ao bundleURL método, mas também permite personalizar o nome do pacote JS pesquisado no binário do aplicativo. Isso é útil se você não estiver nomeando esse arquivo main (que é a convenção padrão). Esse método pressupõe que a extensão do pacote JS seja *.jsbundle.

  • (NSURL *)bundleURLForResource:(NSString *)resourceName withExtension:(NSString *)resourceExtension: equivalente ao bundleURLForResource: método, mas também permite personalizar a extensão usada pelo pacote JS pesquisado no binário do aplicativo. Isso é útil se você não estiver nomeando esse arquivo *.jsbundle (que é a convenção padrão).

  • (void)overrideAppVersion:(NSString *)appVersionOverride - Define a versão da interface binária do aplicativo, que, de outra forma, seria padrão para a versão da App Store especificada como CFBundleShortVersionString no Info.plist. Isso deve ser chamado uma única vez, antes que a URL do pacote seja carregada.

  • (void)setDeploymentKey:(NSString *)deploymentKey – define a chave de implantação que o aplicativo deve usar ao consultar atualizações. Essa é uma alternativa dinâmica para definir a chave de implantação em seu Info.plist ou especificar uma chave de implantação em JS ao chamar checkForUpdate ou sync.

Referência da API Java (Android)

API para React Native versão 0.60 e superior

Como autolinking o usa react-native.config.js para vincular plug-ins, os construtores são especificados nesse arquivo. Mas você pode substituir variáveis personalizadas para gerenciar o plug-in CodePush colocando esses valores em recursos de cadeia de caracteres.

  • Chave pública - usada para verificação de pacote no recurso de assinatura de código. Consulte a seção Assinatura de código para obter mais detalhes sobre o recurso de assinatura de código. Para definir a chave pública, você deve adicionar o conteúdo da chave pública a strings.xml com name CodePushPublicKey. O CodePush obtém automaticamente essa propriedade e habilita o recurso de Assinatura de Código. Por exemplo:

    <string moduleConfig="true" name="CodePushPublicKey">your-public-key</string>
    
  • URL do servidor - usado para especificar a URL do servidor CodePush. O valor padrão: "https://codepush.appcenter.ms/" é substituído adicionando seu caminho a strings.xml com name CodePushServerUrl. O CodePush obtém automaticamente essa propriedade e usará esse caminho para enviar solicitações. Por exemplo:

    <string moduleConfig="true" name="CodePushServerUrl">https://yourcodepush.server.com</string>
    

API para React Native inferior a 0,60

A API Java é disponibilizada importando a classe para o com.microsoft.codepush.react.CodePush arquivo MainActivity.java e consiste em uma única classe pública chamada CodePush.

CodePush

Constrói o tempo de execução do cliente CodePush e representa a ReactPackage instância que você adiciona à lista de pacotes do aplicativo.

Construtores

  • CodePush(String deploymentKey, Activity mainActivity) – cria uma nova instância do runtime do CodePush, que será usada para consultar o serviço em busca de atualizações por meio da chave de implantação fornecida. O mainActivity parâmetro deve sempre ser definido como this ao configurar sua lista de pacotes React dentro da MainActivity classe. Esse construtor coloca o runtime do CodePush no "modo de versão", portanto, se você quiser habilitar o comportamento de depuração, use o construtor a seguir.

  • CodePush(String deploymentKey, Activity mainActivity, bool isDebugMode) – equivalente ao construtor anterior, mas permite que você especifique se deseja que o runtime do CodePush esteja no modo de depuração ou não. Ao usar esse construtor, o isDebugMode parâmetro sempre deve ser definido como BuildConfig.DEBUG para permanecer sincronizado com seu tipo de build. Ao colocar o CodePush no modo de depuração, os seguintes comportamentos são habilitados:

    1. As atualizações antigas do CodePush não são excluídas do armazenamento sempre que um novo binário é implantado no emulador/dispositivo. Esse comportamento permite que você implante novos binários, sem aumentar a versão durante o desenvolvimento e sem obter continuamente a mesma atualização sempre que seu aplicativo chama sync.

    2. O cache local que o runtime do React Native mantém no modo de depuração é excluído sempre que uma atualização do CodePush é instalada. Isso garante que, quando o aplicativo for reiniciado após a aplicação de uma atualização, seja possível ver as alterações esperadas. Assim que este PR for mesclado, não precisaremos mais fazer isso.

  • CodePush(String deploymentKey, Context context, boolean isDebugMode, Integer publicKeyResourceDescriptor) – Equivalente ao construtor anterior, mas permite que você especifique o descritor de recurso de chave pública necessário para ler o conteúdo da chave pública. Consulte a seção Assinatura de código para obter mais detalhes sobre o recurso de assinatura de código.

  • CodePush(String deploymentKey, contexto de contexto, booleano isDebugMode, String serverUrl) – o construtor permite que você especifique a URL do servidor CodePush. O valor padrão: "https://codepush.appcenter.ms/" é substituído pelo valor especificado em serverUrl.

Métodos estáticos

  • getBundleUrl() - Retorna o caminho para a versão mais recente do arquivo de pacote JS do seu aplicativo, supondo que o nome do recurso seja index.android.bundle. Se o aplicativo estiver usando um nome de pacote diferente, use a versão sobrecarregada desse método, que permite especificá-lo. Esse método tem o mesmo comportamento de resolução que o equivalente Objective-C descrito acima.

  • getBundleUrl(String bundleName) - Retorna o caminho para a versão mais recente do arquivo de pacote JS do seu aplicativo, usando o nome do recurso especificado (como index.android.bundle). Esse método tem o mesmo comportamento de resolução que o equivalente Objective-C descrito acima.

  • overrideAppVersion(String appVersionOverride) - Define a versão da interface binária do aplicativo, que de outra forma seria padronizada para a versionName versão da Play Store especificada como no build.gradle. Isso deve ser chamado uma única vez, antes que a instância do CodePush seja construída.