Compartir a través de


Referencia de la API del SDK de React Native Client

Importante

Visual Studio App Center está programado para su retirada el 31 de marzo de 2025. Aunque puede seguir usando Visual Studio App Center hasta que se retire por completo, hay varias alternativas recomendadas a las que puede considerar la posibilidad de migrar.

Obtenga más información sobre las escalas de tiempo de soporte técnico y las alternativas.

El complemento CodePush se compone de dos componentes:

  1. Un módulo de JavaScript, que se puede importar o requerir, y permite que la aplicación interactúe con el servicio durante el tiempo de ejecución (por ejemplo, compruebe si hay actualizaciones, inspeccione los metadatos sobre la actualización de la aplicación que se está ejecutando actualmente).

  2. Una API nativa (Objective-C y Java) que permite que el host de la aplicación nativa de React se arranque con la ubicación de agrupación de JS correcta.

En las secciones siguientes se describe detalladamente la forma y el comportamiento de estas API:

Referencia de API JavaScript

Cuando se requiere react-native-code-push, el objeto module proporciona los siguientes métodos de nivel superior además del decorador de componentes de nivel raíz:

  • allowRestart: permite que se produzcan reinicios mediante programación como resultado de la instalación de una actualización y, opcionalmente, reinicia inmediatamente la aplicación si una actualización pendiente ha intentado reiniciar la aplicación mientras no se permitían los reinicios. Este método es una API avanzada y solo es necesario si la aplicación no permite reiniciar explícitamente a través del disallowRestart método .

  • checkForUpdate: pregunta al servicio CodePush si la implementación de la aplicación configurada tiene disponible una actualización.

  • disallowRestart: temporalmente no permite que se produzcan reinicios mediante programación como resultado de la instalación de una actualización de CodePush. Este método es una API avanzada y es útil cuando un componente de la aplicación (por ejemplo, un proceso de incorporación) debe asegurarse de que no se pueden producir interrupciones del usuario final durante su duración.

  • getCurrentPackage: recupera los metadatos sobre la actualización instalada actualmente (como descripción, tiempo de instalación, tamaño).

    Nota:

    A partir del v1.10.3-beta módulo CodePush, getCurrentPackage está en desuso en favor de getUpdateMetadata*.

  • getUpdateMetadata: recupera los metadatos de una actualización instalada (como la descripción, obligatoria).

  • notifyAppReady: notifica al tiempo de ejecución de CodePush que una actualización instalada se considera correcta. Si busca e instala actualizaciones manualmente (que no usa el método de sincronización para controlarlo todo), se debe llamar a este método; de lo contrario, CodePush tratará la actualización como con errores y revertirá a la versión anterior cuando se reinicie la aplicación.

  • restartApp: reinicia inmediatamente la aplicación. Si hay una actualización pendiente, se mostrará inmediatamente al usuario final. De lo contrario, llamar a este método tiene el mismo comportamiento que el usuario final que mata y reinicia el proceso.

  • sync: permite comprobar una actualización, descargarla e instalarla, todo ello con una sola llamada. A menos que necesite una interfaz de usuario o un comportamiento personalizados, se recomienda que la mayoría de los desarrolladores usen este método al integrar CodePush en sus aplicaciones.

codePush

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

Se usa para encapsular un componente de React dentro de un componente react de "orden superior" que sabe cómo sincronizar la agrupación de JavaScript de la aplicación y los recursos de imagen cuando se monta. Internamente, el componente de orden superior llama sync dentro de su componentDidMount identificador de ciclo de vida, que ejecuta una comprobación de actualización, descarga la actualización si existe e instala la actualización automáticamente.

Este decorador proporciona compatibilidad para permitirle personalizar su comportamiento para habilitar fácilmente las aplicaciones con diferentes requisitos. A continuación se muestran algunos ejemplos de formas en que puede usarla (puede elegir una o incluso usar una combinación):

  1. Sincronización silenciosa en el inicio de la aplicación (el comportamiento predeterminado más sencillo) . La aplicación descargará automáticamente las actualizaciones disponibles y las aplicará la próxima vez que se reinicie la aplicación (como el sistema operativo o el usuario final lo ha matado o se ha reiniciado el dispositivo). De este modo, toda la experiencia de actualización es "silenciosa" para el usuario final, ya que no ve ningún aviso de actualización ni se reinicia la aplicación "sintética".

    // 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. Sincronización silenciosa cada vez que se reanuda la aplicación. Igual que 1, salvo que buscamos actualizaciones, o aplicamos una actualización si existe cada vez que la aplicación vuelve al primer plano después de "en 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. Interactiva. Cuando haya una actualización disponible, solicite al usuario final permiso antes de descargarla y, a continuación, aplique inmediatamente la actualización. Si se publicó una actualización con la mandatory marca , el usuario final seguirá recibiendo una notificación sobre la actualización, pero no tendría la opción de omitirla.

    // 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. Progreso del registro o visualización. Mientras la aplicación se sincroniza con el servidor para las actualizaciones, use los codePushStatusDidChange enlaces de eventos o codePushDownloadDidProgress para registrar las distintas fases de este proceso, o incluso mostrar una barra de progreso al usuario.

    // 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);
    

CodePushOptions

El codePush decorador acepta un objeto "options" que permite personalizar numerosos aspectos del comportamiento predeterminado mencionado anteriormente:

  • checkFrequency (codePush.CheckFrequency): especifica cuándo desea buscar actualizaciones. Tiene como valor predeterminado codePush.CheckFrequency.ON_APP_START. Consulte la referencia de CheckFrequency enumeración para obtener una descripción de las opciones disponibles y lo que hacen.

  • deploymentKey (String): especifica la clave de implementación en la que desea consultar una actualización. De forma predeterminada, este valor se deriva del archivo Info.plist (iOS) y MainActivity.java archivo (Android), pero esta opción le permite invalidarlo desde el lado del script si necesita usar dinámicamente una implementación diferente.

  • installMode (codePush.InstallMode): especifica cuándo quiere instalar actualizaciones opcionales (las que no están marcadas como obligatorias). Tiene como valor predeterminado codePush.InstallMode.ON_NEXT_RESTART. Consulte la referencia de InstallMode enumeración para obtener una descripción de las opciones disponibles y lo que hacen.

  • mandatoryInstallMode (codePush.InstallMode): especifica cuándo quiere instalar actualizaciones, que se marcan como obligatorias. Tiene como valor predeterminado codePush.InstallMode.IMMEDIATE. Consulte la referencia de InstallMode enumeración para obtener una descripción de las opciones disponibles y lo que hacen.

  • minimumBackgroundDuration (Número): especifica el número mínimo de segundos para que la aplicación esté en segundo plano antes de reiniciar la aplicación. Esta propiedad solo se aplica a las actualizaciones que se instalan mediante InstallMode.ON_NEXT_RESUME o InstallMode.ON_NEXT_SUSPEND, y pueden ser útiles para obtener la actualización delante de los usuarios finales antes, sin ser demasiado obtrusiva. El valor predeterminado es 0, que aplica la actualización inmediatamente después de un currículum, o a menos que la suspensión de la aplicación sea lo suficientemente larga como para no importar, sin embargo, está en segundo plano.

  • updateDialog (UpdateDialogOptions): un objeto "options" usado para determinar si se debe mostrar un cuadro de diálogo de confirmación al usuario final cuando haya una actualización disponible y, si es así, qué cadenas usar. El valor predeterminado es null, que deshabilita el cuadro de diálogo. Si se establece en cualquier true valor, se habilitará el cuadro de diálogo con las cadenas predeterminadas y se pasa un objeto a este parámetro, se permite habilitar el cuadro de diálogo, así como invalidar una o varias de las cadenas predeterminadas. Antes de habilitar esta opción en una aplicación distribuida por App Store, consulta esta nota.

    La lista siguiente representa las opciones disponibles y sus valores predeterminados:

    • appendReleaseDescription (booleano): indica si desea anexar la descripción de una versión disponible al mensaje de notificación, que se muestra al usuario final. Tiene como valor predeterminado false.

    • descriptionPrefix (String): indica la cadena con la que desea prefijar la descripción de la versión, si existe, al mostrar la notificación de actualización al usuario final. De manera predeterminada, su valor es " Description: ".

    • mandatoryContinueButtonLabel (String): el texto que se va a usar para el botón que el usuario final debe presionar para instalar una actualización obligatoria. Tiene como valor predeterminado "Continue".

    • mandatoryUpdateMessage (String): el texto usado como cuerpo de una notificación de actualización, cuando la actualización se especifica como obligatoria. Tiene como valor predeterminado "An update is available that must be installed.".

    • optionalIgnoreButtonLabel (String): el texto que se va a usar para el botón que el usuario final puede presionar para omitir una actualización opcional disponible. Tiene como valor predeterminado "Ignore".

    • optionalInstallButtonLabel (String): el texto que se va a usar para el botón que el usuario final puede presionar para instalar una actualización opcional. Tiene como valor predeterminado "Install".

    • optionalUpdateMessage (String): el texto usado como cuerpo de una notificación de actualización, cuando la actualización es opcional. Tiene como valor predeterminado "An update is available. Would you like to install it?".

    • title (String): el texto usado como encabezado de una notificación de actualización que se muestra al usuario final. Tiene como valor predeterminado "Update available".

  • rollbackRetryOptions (RollbackRetryOptions): el mecanismo de reintentos de reversión permite a la aplicación intentar reinstalar una actualización que se revierte anteriormente (con las restricciones especificadas en las opciones). Se trata de un objeto "options" que se usa para determinar si se debe producir un reintento de reversión y, si es así, qué configuración usar para el reintento de reversión. Este valor predeterminado es NULL, que tiene el efecto de deshabilitar el mecanismo de reintento. Si se establece en cualquier valor de verdad, se habilitará el mecanismo de reintento con la configuración predeterminada y se pasa un objeto a este parámetro, lo que permite habilitar el reintento de reversión, así como invalidar uno o varios de los valores predeterminados.

    La lista siguiente representa las opciones disponibles y sus valores predeterminados:

    • delayInHours (número): especifica el tiempo mínimo en horas que la aplicación esperará después de la reversión más reciente antes de intentar volver a instalar el mismo paquete revertida. No puede ser menor que 0. Puede ser un número flotante. Tiene como valor predeterminado 24.

    • maxRetryAttempts (número): especifica el número máximo de reintentos que la aplicación puede realizar antes de dejar de intentarlo. No puede ser menor que 1. Tiene como valor predeterminado 1.

codePushStatusDidChange (enlace de eventos)

Se llama cuando el proceso de sincronización pasa de una fase a otra en el proceso de actualización general. Se llama al enlace de eventos con un código de estado que representa el estado actual y puede ser cualquiera de los SyncStatus valores.

codePushDownloadDidProgress (enlace de eventos)

Se llama periódicamente cuando se descarga una actualización disponible desde el servidor CodePush. Se llama al método con un DownloadProgress objeto , que contiene las dos propiedades siguientes:

  • totalBytes (número): número total de bytes que se espera que se reciban para esta actualización (es decir, el tamaño del conjunto de archivos, que cambió de la versión anterior).

  • receivedBytes (Número): número de bytes descargados hasta ahora, que se pueden usar para realizar un seguimiento del progreso de la descarga.

codePush.allowRestart

codePush.allowRestart(): void;

Permite que se produzcan reinicios mediante programación, que de lo contrario se habrían rechazado debido a una llamada anterior a disallowRestart. Si disallowRestart nunca se llamó en primer lugar, llamar a este método da como resultado una operación sin operación.

Si una actualización de CodePush está actualmente pendiente, lo que intentó reiniciar la aplicación (por ejemplo, usó InstallMode.IMMEDIATE), pero se bloqueó debido disallowRestart a que se ha llamado, la llamada allowRestart producirá un reinicio inmediato. Este reinicio permite aplicar la actualización lo antes posible, sin interrumpir al usuario final durante los flujos de trabajo críticos (por ejemplo, un proceso de incorporación).

Por ejemplo, llamar allowRestart a desencadenaría un reinicio inmediato si se llamara a cualquiera de los tres escenarios mencionados en los disallowRestart documentos después disallowRestart de llamar a . Sin embargo, la llamada allowRestart no desencadenaría un reinicio si se cumplen los siguientes puntos:

  1. No se instalaron actualizaciones de CodePush desde la última vez disallowRestart que se llamó, por lo que no es necesario reiniciar de todos modos.

  2. Actualmente hay una actualización de CodePush pendiente, pero se instaló a través InstallMode.ON_NEXT_RESTARTde , por lo que no es necesario reiniciar mediante programación.

  3. Actualmente hay una actualización de CodePush pendiente, pero se instaló a través InstallMode.ON_NEXT_RESUME de y la aplicación aún no se ha puesto en segundo plano, por lo que aún no es necesario reiniciar mediante programación.

  4. No se realizó ninguna llamada desde restartApp la última vez disallowRestart .

Este comportamiento garantiza que no se desencadene ningún reinicio como resultado de llamar a allowRestart a menos que se solicite explícitamente uno durante el período no permitido. De este modo, allowRestart es similar a llamar restartApp(true)a , excepto que el anterior solo desencadenará un reinicio si la actualización pendiente actualmente quería reiniciarse, pero esta última se reiniciaría siempre y cuando una actualización esté pendiente.

Consulte disallowRestart para obtener un ejemplo de cómo se puede usar este método.

codePush.checkForUpdate

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

Consulta el servicio CodePush para ver si la implementación de la aplicación configurada tiene disponible una actualización. De forma predeterminada, usará la clave de implementación configurada en el archivo Info.plist (iOS) o MainActivity.java archivo (Android), pero puede invalidarlo especificando un valor a través del parámetro opcional deploymentKey . Esto puede ser útil cuando quiere "redirigir" dinámicamente a un usuario a una implementación específica, como permitir el "acceso anticipado" a través de un huevo de pascua o un modificador de configuración de usuario.

El segundo parámetro handleBinaryVersionMismatchCallback opcional es una función de devolución de llamada opcional que se puede usar para notificar al usuario si hay alguna actualización binaria. Por ejemplo, considere un caso de uso en el que la versión binaria instalada actualmente es 1.0.1 con una etiqueta (etiqueta de inserción de código) v1. El código nativo posterior se cambió en el ciclo de desarrollo y la versión binaria se actualizó a la versión 1.0.2. Cuando se desencadena una comprobación de actualización de codepush, se omiten las actualizaciones que tienen un error de coincidencia de versiones binarias (ya que la actualización no tiene como destino la versión binaria de la aplicación instalada actualmente). En este caso, la aplicación instalada (1.0.1) omitirá la versión de destino de la actualización 1.0.2. Puede usar handleBinaryVersionMismatchCallback para proporcionar un enlace para controlar estas situaciones.

Importante

Tenga cuidado de usar alertas dentro de esta devolución de llamada si está desarrollando aplicaciones iOS, debido al proceso de revisión de App Store : las aplicaciones no deben obligar a los usuarios a evaluar la aplicación, revisar la aplicación, descargar otras aplicaciones u otras acciones similares para acceder a la funcionalidad, el contenido o el uso de la aplicación.

Este método devuelve un objeto Promise, que se resuelve en uno de los dos valores posibles:

  1. null si no hay ninguna actualización disponible. Esto puede ocurrir en los escenarios siguientes:

    1. La implementación configurada no contiene ninguna versión, por lo que no hay nada que actualizar.
    2. La versión más reciente dentro de la implementación configurada tiene como destino una versión binaria diferente a la que se está ejecutando actualmente (ya sea anterior o más reciente).
    3. La aplicación que se está ejecutando actualmente ya tiene la versión más reciente de la implementación configurada, por lo que no la necesita de nuevo.
    4. La versión más reciente de la implementación configurada está marcada actualmente como deshabilitada, por lo que no se puede descargar.
    5. La versión más reciente dentro de la implementación configurada está en un estado de "lanzamiento activo" y el dispositivo solicitante no se encuentra dentro del porcentaje de usuarios que son aptos para ella.
  2. Instancia RemotePackage de , que representa una actualización disponible que se puede inspeccionar o descargar posterior.

Uso de ejemplo:

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;

No permite temporalmente que se produzcan reinicios mediante programación como resultado de cualquiera de los siguientes escenarios:

  1. Se instala una actualización de CodePush mediante InstallMode.IMMEDIATE

  2. Se instala una actualización de CodePush mediante InstallMode.ON_NEXT_RESUME y la aplicación se reanuda desde segundo plano (opcionalmente, la propiedad está limitada).minimumBackgroundDuration

  3. Se llamó al restartApp método

    Nota:

    Los pasos 1 y 2 funcionan eficazmente llamando restartApp a usted, por lo que puedes pensar disallowRestart en bloquear cualquier llamada a restartApp, tanto si la aplicación lo llama directamente como indirectamente.

Después de llamar a este método, se seguirá permitiendo que las llamadas a sync busquen una actualización, descárguelo e instálelo, pero se pondrá en cola un intento de reiniciar la aplicación hasta allowRestart que se llame a . De este modo, se captura la solicitud de reinicio y se puede "vaciar" siempre que quiera permitir que se produzca.

Se trata de una API avanzada y es fundamentalmente útil cuando los componentes individuales dentro de la aplicación (como un proceso de incorporación) necesitan asegurarse de que no se pueden producir interrupciones del usuario final durante su duración, mientras continúa permitiendo que la aplicación siga sincronizando con el servidor CodePush a su propio ritmo y usando los modos de instalación adecuados. Esto tiene la ventaja de permitir que la aplicación detecte y descargue las actualizaciones disponibles lo antes posible, a la vez que evita las interrupciones durante las experiencias clave del usuario final.

Como alternativa, también puedes usar InstallMode.ON_NEXT_RESTART cada vez que llames sync (que nunca intentará reiniciar la aplicación mediante programación) y, a continuación, llamar restartApp explícitamente a puntos de la aplicación que sean "seguros" para hacerlo. disallowRestart proporciona un enfoque alternativo para esto cuando el código que se sincroniza con el servidor CodePush es independiente del código o componentes que quieren aplicar una directiva sin reinicio.

Uso de ejemplo:

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

Nota:

Este método se considera en desuso a partir v1.10.3-beta del módulo CodePush. Si ejecuta esta versión (o una versión más reciente), se recomienda usar en codePush.getUpdateMetadata su lugar, ya que tiene un comportamiento más predecible.

codePush.getCurrentPackage(): Promise<LocalPackage>;

Recupera los metadatos sobre el "paquete" instalado actualmente (como la descripción, el tiempo de instalación). Esto puede ser útil para escenarios como mostrar un cuadro de diálogo "novedades?" después de aplicar una actualización o comprobar si hay una actualización pendiente que está esperando que se aplique a través de un reinicio o reanudación.

Este método devuelve un objeto Promise, que se resuelve en uno de los dos valores posibles:

  1. null si la aplicación está ejecutando actualmente la agrupación de JS desde el binario y no una actualización de CodePush. Esto ocurre en los escenarios siguientes:

    1. El usuario final instaló el binario de la aplicación y aún tiene que instalar una actualización de CodePush.
    2. El usuario final instaló una actualización del binario (por ejemplo, del almacén), que despejó las actualizaciones antiguas de CodePush y devolvió prioridad al binario JS en el binario.
  2. Instancia LocalPackage de , que representa los metadatos de la actualización codePush que se está ejecutando actualmente.

Uso de ejemplo:

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 los metadatos de una actualización instalada (como la descripción, obligatoria) cuyo estado coincide con el parámetro especificado updateState . Esto puede ser útil para escenarios como mostrar un cuadro de diálogo "novedades?" después de aplicar una actualización o comprobar si hay una actualización pendiente que está esperando que se aplique a través de un reinicio o reanudación. Para obtener más información sobre los posibles estados de actualización y lo que representan, consulte la referencia updateState.

Este método devuelve un objeto Promise, que se resuelve en uno de los dos valores posibles:

  1. null si una actualización con el estado especificado no existe actualmente. Esto ocurre en los escenarios siguientes:

    1. El usuario final aún no ha instalado ninguna actualización de CodePush y por eso no hay metadatos disponibles para ninguna actualización, lo que especifique como parámetro updateState .

    2. El usuario final instaló una actualización del binario (por ejemplo, del almacén), que despejó las actualizaciones antiguas de CodePush y devolvió prioridad al binario JS en el binario. Mostraría el mismo comportamiento que el n.º 1

    3. El updateState parámetro se establece UpdateState.RUNNINGen , pero la aplicación no ejecuta actualmente una actualización de CodePush. Puede haber una actualización pendiente, pero la aplicación aún no se ha reiniciado para que esté activa.

    4. El updateState parámetro se establece en UpdateState.PENDING, pero la aplicación no tiene actualizaciones pendientes actualmente.

  2. Instancia LocalPackage de , que representa los metadatos de la actualización codePush solicitada actualmente (ya sea en ejecución o pendiente).

Uso de ejemplo:

// 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 al tiempo de ejecución codePush que una actualización recién instalada debe considerarse correcta y, por lo tanto, no es necesaria una reversión automática del lado cliente. Es obligatorio llamar a esta función en algún lugar del código de la agrupación actualizada. De lo contrario, cuando la aplicación se reinicie a continuación, el entorno de ejecución de CodePush asume que se ha producido un error en la actualización instalada y se revierte a la versión anterior. Este comportamiento existe para ayudar a garantizar que los usuarios finales no estén bloqueados por una actualización interrumpida.

Si usa la función y realiza la comprobación de actualizaciones en el inicio de la sync aplicación, no es necesario llamar notifyAppReady manualmente, ya sync que la llamará automáticamente. Este comportamiento existe debido a la suposición de que cuando sync se llama a en la aplicación, representa una buena aproximación de un inicio correcto.

Nota:

Este método también se aplica un alias como notifyApplicationReady (para la compatibilidad con versiones anteriores).

codePush.restartApp

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

Reinicia inmediatamente la aplicación. Si se proporciona un valor verdadero al onlyIfUpdateIsPending parámetro , la aplicación solo se reiniciará si realmente hay una actualización pendiente en espera de aplicarse.

Este método es para escenarios avanzados y es fundamentalmente útil cuando se cumplen las condiciones siguientes:

  1. La aplicación especifica un valor de modo de instalación de ON_NEXT_RESTART o ON_NEXT_RESUME al llamar a los sync métodos o LocalPackage.install . Esto no aplica la actualización hasta que la aplicación se haya reiniciado (ya sea por el usuario final o el sistema operativo) o se reanude, y por lo tanto, la actualización no se mostrará inmediatamente al usuario final.

  2. Tiene un evento de usuario específico de la aplicación (como el usuario final que volvió a la ruta principal de la aplicación) que le permite aplicar la actualización de forma discreta y, posiblemente, obtener la actualización al usuario final antes de esperar hasta el siguiente reinicio o reanudar.

codePush.sync

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

Sincroniza los recursos de imagen y agrupación de JavaScript de la aplicación con la versión más reciente de la implementación configurada. A diferencia del método checkForUpdate , que comprueba la presencia de una actualización y vamos a controlar qué hacer a continuación, sync controla la comprobación de actualizaciones, la descarga y la experiencia de instalación automáticamente.

Este método proporciona compatibilidad con dos "modos" diferentes (pero personalizables) para habilitar fácilmente las aplicaciones con requisitos diferentes:

  1. El modo silencioso (el comportamiento predeterminado) descarga automáticamente las actualizaciones disponibles y las aplica la próxima vez que se reinicie la aplicación (por ejemplo, el sistema operativo o el usuario final lo mataron, o se reinició el dispositivo). De este modo, toda la experiencia de actualización es "silenciosa" para el usuario final, ya que no ve ningún aviso de actualización ni se reinicia la aplicación "sintética".

  2. El modo activo, que cuando hay una actualización disponible, solicita al usuario final permiso antes de descargarlo y, a continuación, aplica inmediatamente la actualización. Si se publicó una actualización con la mandatory marca , el usuario final seguirá recibiendo una notificación sobre la actualización, pero no tendría la opción de omitirla.

Uso de ejemplo:

// 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 });

Sugerencia

Si desea decidir si comprueba o descarga una actualización disponible en función del nivel de batería del dispositivo del usuario final, las condiciones de red etcetera. A continuación, encapsula la llamada a sync en una condición que garantiza que solo la llame cuando se desee.

SyncOptions

Aunque el sync método intenta facilitar la realización de actualizaciones silenciosas y activas con poca configuración, acepta un objeto "options" que permite personalizar muchos aspectos del comportamiento predeterminado mencionado anteriormente. Las opciones disponibles son idénticas a CodePushOptions, a excepción de la checkFrequency opción :

Uso de ejemplo:

// 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
   }
});

Además de las opciones, el sync método también acepta varios parámetros de función opcionales, lo que permite suscribirse al ciclo de vida de la sync "canalización" para mostrar una interfaz de usuario adicional según sea necesario (como una "comprobación del modal de actualización o un modal de progreso de descarga):

  • syncStatusChangedCallback ((syncStatus: Number) => void): se llama cuando el proceso de sincronización pasa de una fase a otra en el proceso de actualización general. Se llama al método con un código de estado, que representa el estado actual y puede ser cualquiera de los SyncStatus valores.

  • downloadProgressCallback ((progress: DownloadProgress) => void): se llama periódicamente cuando se descarga una actualización disponible desde el servidor CodePush. Se llama al método con un DownloadProgress objeto , que contiene las dos propiedades siguientes:

    • totalBytes (número): número total de bytes que se espera que se reciban para esta actualización (es decir, el tamaño del conjunto de archivos, que cambió de la versión anterior).

    • receivedBytes (Número): número de bytes descargados hasta ahora, que se pueden usar para realizar un seguimiento del progreso de la descarga.

  • handleBinaryVersionMismatchCallback ((update: RemotePackage) => void): se llama cuando hay alguna actualización binaria disponible. Se llama al método con un RemotePackage objeto . Consulte la sección codePush.checkForUpdate para obtener más detalles.

Uso de ejemplo:

// 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 */
  }
);

Este método devuelve un Promiseobjeto , que se resuelve en un SyncStatus código que indica por qué la sync llamada se realizó correctamente. Este código puede ser uno de los siguientes SyncStatus valores:

  • codePush.SyncStatus.UP_TO_DATE (4): la aplicación está actualizada con el servidor CodePush.

  • codePush.SyncStatus.UPDATE_IGNORED (5): la aplicación tenía una actualización opcional, que el usuario final eligió omitir. (Esto solo es aplicable cuando se usa )updateDialog

  • codePush.SyncStatus.UPDATE_INSTALLED (6): la actualización se ha instalado y se ejecutará inmediatamente después de que la syncStatusChangedCallback función se devuelva o la próxima vez que la aplicación se reanude o reinicie, en función del InstallMode especificado en SyncOptions.

  • codePush.SyncStatus.SYNC_IN_PROGRESS (7): hay una operación en curso sync en ejecución que impide que se ejecute la llamada actual.

Se sync puede llamar al método en cualquier lugar en el que quiera comprobar si hay una actualización. Esto podría estar en el componentWillMount evento de ciclo de vida del componente raíz, el controlador onPress de un <TouchableHighlight> componente, en la devolución de llamada de un temporizador periódico, o lo que tenga sentido para sus necesidades. Al igual que el checkForUpdate método , realiza la solicitud de red para comprobar si hay una actualización en segundo plano, por lo que no afectará a la capacidad de respuesta del subproceso de la interfaz de usuario o del subproceso de JavaScript.

Objetos de paquete

Los checkForUpdate métodos y getUpdateMetadata devuelven Promise objetos que, cuando se resuelven, proporcionan acceso a objetos "package". El paquete representa la actualización del código y los metadatos adicionales (como la descripción, obligatorio). CodePush API tiene la distinción entre los siguientes tipos de paquetes:

  • LocalPackage: representa una actualización descargada que ya está en ejecución o que se ha instalado y está pendiente de reiniciar la aplicación.

  • RemotePackage: representa una actualización disponible en el servidor CodePush que aún no se ha descargado.

LocalPackage

Contiene detalles sobre una actualización que se ha descargado localmente o que ya está instalada. Puede obtener una referencia a una instancia de este objeto llamando al método de nivel getUpdateMetadata de módulo o como el valor de la promesa devuelta por el RemotePackage.download método .

Propiedades
  • appVersion: la versión binaria de la aplicación de la que depende esta actualización. Este es el valor que se especificó a través del appStoreVersion parámetro al llamar al comando de release la CLI. (String)
  • deploymentKey: clave de implementación que se usó para descargar originalmente esta actualización. (String)
  • description: descripción de la actualización. Este es el mismo valor que especificó en la CLI al publicar la actualización. (String)
  • failedInstall: indica si esta actualización se instaló anteriormente, pero se reviertó. El sync método omitirá automáticamente las actualizaciones, que han producido un error anteriormente, por lo que solo debe preocuparse por esta propiedad si usa checkForUpdate. (Boolean)
  • isFirstRun: indica si esta es la primera vez que se ha ejecutado la actualización después de instalarse. Esto es útil para determinar si desea mostrar una "Novedades?" Interfaz de usuario al usuario final después de instalar una actualización. (Boolean)
  • isMandatory: indica si la actualización se considera obligatoria. Este es el valor que se especificó en la CLI cuando se publicó la actualización. (Boolean)
  • isPending: indica si esta actualización está en un estado "pendiente". Cuando true, significa que la actualización se ha descargado e instalado, pero el reinicio de la aplicación necesario para aplicarlo aún no se ha producido y por eso sus cambios no son visibles actualmente para el usuario final. (Boolean)
  • label: la etiqueta interna dada automáticamente a la actualización por el servidor CodePush, como v5. Este valor identifica de forma única la actualización dentro de su implementación. (String)
  • packageHash: valor hash sha de la actualización. (String)
  • packageSize: tamaño del código contenido en la actualización, en bytes. (Número)
Métodos
  • install(installMode: codePush.InstallMode = codePush.InstallMode.ON_NEXT_RESTART, minimumBackgroundDuration = 0): Promise<void>: instala la actualización guardándola en la ubicación en el disco donde el runtime espera encontrar la versión más reciente de la aplicación. El installMode parámetro controla cuándo se presentan los cambios al usuario final. El valor predeterminado es esperar hasta que se reinicie la siguiente aplicación para mostrar los cambios, pero puede hacer referencia a la InstallMode referencia de enumeración para obtener una descripción de las opciones disponibles y lo que hacen. Si el installMode parámetro se establece InstallMode.ON_NEXT_RESUMEen , el minimumBackgroundDuration parámetro le permite controlar cuánto tiempo debe haber estado la aplicación en segundo plano antes de forzar la instalación después de reanudarla.

RemotePackage

Contiene detalles sobre una actualización que está disponible para su descarga desde el servidor CodePush. Para obtener una referencia a una instancia de este objeto, llame al checkForUpdate método cuando haya una actualización disponible. Si usa la sync API, no es necesario preocuparse por , RemotePackageya que controlará automáticamente el proceso de descarga e instalación.

Propiedades

RemotePackage Hereda todas las mismas propiedades que , LocalPackagepero incluye una adicional:

  • downloadUrl: la dirección URL en la que el paquete está disponible para su descarga. Esta propiedad solo es necesaria para el uso avanzado, ya que el download método controlará automáticamente la adquisición de actualizaciones automáticamente. (String)
Métodos
  • download(downloadProgressCallback?: Función): Promise<LocalPackage>: descarga la actualización disponible desde el servicio CodePush. Si se especifica , downloadProgressCallback se llamará periódicamente con un DownloadProgress objeto ({ totalBytes: Number, receivedBytes: Number }) que notifica el progreso de la descarga hasta que se complete. Devuelve una promesa que se resuelve con .LocalPackage

Enumeraciones

CodePush API incluye las siguientes enumeraciones, que se pueden usar para personalizar la experiencia de actualización:

InstallMode

Esta enumeración especifica cuándo desea que se aplique realmente una actualización instalada y se puede pasar a los sync métodos o LocalPackage.install . Incluye los siguientes valores:

  • codePush.InstallMode.IMMEDIATE (0): indica que desea instalar la actualización y reiniciar la aplicación inmediatamente. Este valor es adecuado para escenarios de depuración, así como al mostrar una solicitud de actualización al usuario, ya que esperarían ver los cambios inmediatamente después de aceptar la instalación. Además, este modo se puede usar para aplicar actualizaciones obligatorias, ya que quita la latencia potencialmente no deseada entre la instalación de la actualización y la próxima vez que el usuario final se reinicie o reanude la aplicación.

  • codePush.InstallMode.ON_NEXT_RESTART (1): indica que desea instalar la actualización, pero no reiniciar la aplicación de forma forzada. Cuando la aplicación se reinicia de forma natural (debido al sistema operativo o al usuario final que lo mata), la actualización se recogerá sin problemas. Este valor es adecuado al realizar actualizaciones silenciosas, ya que probablemente es perjudicial para el usuario final si la aplicación se reinicia repentinamente fuera de ninguna parte. Ni siquiera se descargaría una actualización. Este es el modo predeterminado que se usa para los sync métodos y LocalPackage.install .

  • codePush.InstallMode.ON_NEXT_RESUME (2): indica que quiere instalar la actualización, pero no desea reiniciar la aplicación hasta la próxima vez que el usuario final lo reanude desde segundo plano. De este modo, no interrumpe su sesión actual, pero puede obtener la actualización delante de ellas antes de tener que esperar al siguiente reinicio natural. Este valor es adecuado para las instalaciones silenciosas que se pueden aplicar al reanudar de forma no invasiva.

  • codePush.InstallMode.ON_NEXT_SUSPEND (3): indica que desea instalar la actualización mientras está en segundo plano, pero solo después de haber estado en segundo plano minimumBackgroundDuration (0 de forma predeterminada), de modo que el contexto del usuario no se pierda a menos que la suspensión de la aplicación sea lo suficientemente larga como para no importar.

CheckFrequency

Esta enumeración especifica cuándo quieres que la aplicación se sincronice con el servidor para las actualizaciones y se pueda pasar al codePushify decorador. Incluye los siguientes valores:

  • codePush.CheckFrequency.ON_APP_START (0): indica que quiere comprobar si hay actualizaciones cada vez que se inicia el proceso de la aplicación.

  • codePush.CheckFrequency.ON_APP_RESUME (1): indica que quiere comprobar si hay actualizaciones cada vez que la aplicación vuelve al primer plano después de "en segundo plano" (el usuario presiona el botón inicio, la aplicación inicia un proceso de pago independiente, etc.).

  • codePush.CheckFrequency.MANUAL (2): deshabilita la comprobación automática de actualizaciones, pero solo comprueba cuándo codePush.sync() se llama en el código de la aplicación.

SyncStatus

Esta enumeración se proporciona a la syncStatusChangedCallback función que se puede pasar al sync método para enlazar con el proceso de actualización general. Incluye los siguientes valores:

  • codePush.SyncStatus.CHECKING_FOR_UPDATE (0): se está consultando el servidor CodePush para obtener una actualización.
  • codePush.SyncStatus.AWAITING_USER_ACTION (1): hay disponible una actualización y se mostró un cuadro de diálogo de confirmación al usuario final. (Esto solo es aplicable cuando se usa )updateDialog
  • codePush.SyncStatus.DOWNLOADING_PACKAGE (2): se descarga una actualización disponible desde el servidor CodePush.
  • codePush.SyncStatus.INSTALLING_UPDATE (3): se descargó una actualización disponible y está a punto de instalarse.
  • codePush.SyncStatus.UP_TO_DATE (4): la aplicación está totalmente actualizada con la implementación configurada.
  • codePush.SyncStatus.UPDATE_IGNORED (5): la aplicación tiene una actualización opcional, que el usuario final eligió omitir. (Esto solo es aplicable cuando se usa )updateDialog
  • codePush.SyncStatus.UPDATE_INSTALLED (6): se ha instalado una actualización disponible y se ejecutará inmediatamente después de que la syncStatusChangedCallback función vuelva o la próxima vez que la aplicación se reanude o reinicie, en función del InstallMode especificado en SyncOptions.
  • codePush.SyncStatus.SYNC_IN_PROGRESS (7): hay una operación en curso sync que impide que se ejecute la llamada actual.
  • codePush.SyncStatus.UNKNOWN_ERROR (-1): la operación de sincronización encontró un error desconocido.

UpdateState

Esta enumeración especifica el estado en el que se encuentra actualmente una actualización y se puede especificar al llamar al getUpdateMetadata método . Incluye los siguientes valores:

  • codePush.UpdateState.RUNNING (0): indica que una actualización representa la versión de la aplicación que se está ejecutando actualmente. Esto puede ser útil para identificar atributos sobre la aplicación, en escenarios como mostrar la descripción de la versión en un cuadro de diálogo "novedades?" o notificar la versión más reciente a un servicio de análisis o informes de bloqueos.

  • codePush.UpdateState.PENDING (1): indica que se ha instalado una actualización, pero la aplicación aún no se ha reiniciado para aplicarla. Esto puede ser útil para determinar si hay una actualización pendiente, que puede forzar un reinicio mediante programación (a través restartAppde ) para aplicar.

  • codePush.UpdateState.LATEST (2): indica que una actualización representa la versión disponible más reciente y puede estar actualmente en ejecución o pendiente.

Referencia de API de Objective-C (iOS)

La API de Objective-C está disponible importando el encabezado en el CodePush.h archivo AppDelegate.m y consta de una sola clase pública denominada CodePush.

CodePush

Contiene métodos estáticos para recuperar el NSURL que representa el archivo de agrupación de JavaScript más reciente y se puede pasar al RCTRootViewmétodo del initWithBundleURL programa al arrancar la aplicación en el archivo AppDelegate.m .

Los métodos de la CodePush clase pueden considerarse solucionadores compuestos, que siempre cargan la agrupación adecuada, para dar cabida a los escenarios siguientes:

  1. Cuando un usuario final instala la aplicación desde la tienda (como 1.0.0), obtendrá el lote de JS incluido en el archivo binario. Este es el comportamiento que obtendría sin usar CodePush, pero nos aseguramos de que no interrumpa :)

  2. En cuanto empiece a publicar actualizaciones de CodePush, los usuarios finales obtendrán el lote de JS que representa la versión más reciente de la implementación configurada. Este es el comportamiento que le permite iterar más allá de lo que envió a la tienda.

  3. Tan pronto como publique una actualización en el almacén de aplicaciones (como 1.1.0), y los usuarios finales lo actualizarán, obtendrán de nuevo el lote de JS incluido en el binario. Este comportamiento garantiza que las actualizaciones de CodePush destinadas a una versión binaria anterior no se usen (ya que no sabemos que funcionarían) y los usuarios finales siempre tienen una versión de trabajo de la aplicación.

  4. Repita el número 2 y el #3 a medida que las versiones de CodePush y las versiones de la tienda de aplicaciones continúen en infinito (y más allá?)

Debido a este comportamiento, puede implementar actualizaciones de forma segura en los almacenes de aplicaciones y CodePush según sea necesario y estar seguro de que los usuarios finales siempre obtendrán la versión más reciente.

Métodos

  • (NSURL *)bundleURL : devuelve el lote NSURL de JS más reciente como se ha descrito anteriormente. Este método supone que el nombre del lote de JS incluido en el binario de la aplicación es main.jsbundle.

  • (NSURL *)bundleURLForResource:(NSString *)resourceName : equivalente al bundleURL método, pero también permite personalizar el nombre del lote de JS que se busca en el binario de la aplicación. Esto resulta útil si no va a asignar un nombre a este archivo main (que es la convención predeterminada). Este método supone que la extensión del lote de JS es *.jsbundle.

  • (NSURL *)bundleURLForResource:(NSString *)resourceName withExtension:(NSString *)resourceExtension: equivalente al bundleURLForResource: método, pero también permite personalizar la extensión usada por el lote de JS que se busca en el binario de la aplicación. Esto resulta útil si no va a asignar un nombre a este archivo *.jsbundle (que es la convención predeterminada).

  • (void)overrideAppVersion:(NSString *)appVersionOverride: establece la versión de la interfaz binaria de la aplicación, que, de lo contrario, tendría como valor predeterminado la versión de App Store especificada como en CFBundleShortVersionString info.plist. Se debe llamar a una sola vez, antes de cargar la dirección URL del lote.

  • (void)setDeploymentKey:(NSString *)deploymentKey : establece la clave de implementación que la aplicación debe usar al consultar las actualizaciones. Se trata de una alternativa dinámica para establecer la clave de implementación en info.plist o especificar una clave de implementación en JS al llamar a checkForUpdate o sync.

Referencia de API de Java (Android)

API para React Native 0.60 y versiones posteriores

Dado autolinking que usa react-native.config.js para vincular complementos, los constructores se especifican en ese archivo. Pero puede invalidar variables personalizadas para administrar el complemento CodePush colocando estos valores en recursos de cadena.

  • Clave pública: se usa para la comprobación de agrupación en la característica de firma de código. Consulte la sección Firma de código para obtener más información sobre la característica de firma de código. Para establecer la clave pública, debe agregar el contenido de la clave pública a strings.xml con el nombre CodePushPublicKey. CodePush obtiene automáticamente esta propiedad y habilita la característica Firma de código. Por ejemplo:

    <string moduleConfig="true" name="CodePushPublicKey">your-public-key</string>
    
  • Dirección URL del servidor: se usa para especificar la dirección URL del servidor CodePush. Valor predeterminado: "https://codepush.appcenter.ms/" se invalida agregando la ruta de acceso a strings.xml con el nombre CodePushServerUrl. CodePush obtiene automáticamente esta propiedad y usará esta ruta de acceso para enviar solicitudes. Por ejemplo:

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

API para React Native inferior a 0,60

La API de Java está disponible mediante la importación de la clase en el com.microsoft.codepush.react.CodePush archivo MainActivity.java y consta de una sola clase pública denominada CodePush.

CodePush

Construye el tiempo de ejecución del cliente CodePush y representa la instancia que agregas a la ReactPackage lista de paquetes de la aplicación.

Constructores

  • CodePush(String deploymentKey, Activity mainActivity): crea una nueva instancia del entorno de ejecución codePush, que se usará para consultar el servicio para las actualizaciones a través de la clave de implementación proporcionada. El mainActivity parámetro siempre debe establecerse en this al configurar la lista de paquetes de React dentro de la MainActivity clase . Este constructor coloca el tiempo de ejecución de CodePush en "modo de versión", por lo que si desea habilitar el comportamiento de depuración, use el siguiente constructor en su lugar.

  • CodePush(String deploymentKey, Activity mainActivity, bool isDebugMode): equivalente al constructor anterior, pero permite especificar si quiere que el tiempo de ejecución de CodePush esté en modo de depuración o no. Al usar este constructor, el isDebugMode parámetro siempre debe establecerse en BuildConfig.DEBUG para mantenerse sincronizado con el tipo de compilación. Al colocar CodePush en modo de depuración, se habilitan los siguientes comportamientos:

    1. Las actualizaciones de CodePush antiguas no se eliminan del almacenamiento cada vez que se implementa un nuevo binario en el emulador o dispositivo. Este comportamiento permite implementar nuevos archivos binarios, sin aumentar la versión durante el desarrollo y sin obtener continuamente la misma actualización cada vez que la aplicación llama a sync.

    2. La caché local que el entorno de ejecución de React Native mantiene en modo de depuración se elimina cada vez que se instala una actualización de CodePush. Esto garantiza que cuando se reinicie la aplicación después de aplicar una actualización, es posible ver los cambios esperados. En cuanto se combine esta solicitud de incorporación de cambios, ya no es necesario hacerlo.

  • CodePush(String deploymentKey, Context Context, boolean isDebugMode, Integer publicKeyResourceDescriptor): equivalente al constructor anterior, pero permite especificar el descriptor de recursos de clave pública necesario para leer el contenido de la clave pública. Consulte la sección Firma de código para obtener más información sobre la característica de firma de código.

  • CodePush(String deploymentKey, context, boolean isDebugMode, String serverUrl): el constructor permite especificar la dirección URL del servidor CodePush. El valor Predeterminado: "https://codepush.appcenter.ms/" se invalida por valor especificado en serverUrl.

Métodos estáticos

  • getBundleUrl(): devuelve la ruta de acceso a la versión más reciente del archivo de agrupación JS de la aplicación, suponiendo que el nombre del recurso sea index.android.bundle. Si la aplicación usa un nombre de agrupación diferente, use la versión sobrecargada de este método, que permite especificarla. Este método tiene el mismo comportamiento de resolución que el equivalente de Objective-C descrito anteriormente.

  • getBundleUrl(String bundleName): devuelve la ruta de acceso a la versión más reciente del archivo de agrupación JS de la aplicación, con el nombre de recurso especificado (como index.android.bundle). Este método tiene el mismo comportamiento de resolución que el equivalente de Objective-C descrito anteriormente.

  • overrideAppVersion(String appVersionOverride): establece la versión de la interfaz binaria de la aplicación, que, de lo contrario, tendría como valor predeterminado la versión de Play Store especificada como en versionName build.gradle. Se debe llamar a una sola vez antes de que se construya la instancia de CodePush.