Sdílet prostřednictvím


Referenční informace k rozhraní API sady React Native Client SDK

Důležité

31. března 2025 je naplánované vyřazení sady Visual Studio App Center. I když můžete Visual Studio App Center dál používat, dokud nebude plně vyřazený, existuje několik doporučených alternativ, na které můžete zvážit migraci.

Přečtěte si další informace o časových osách podpory a alternativách.

Modul plug-in CodePush se skládá ze dvou komponent:

  1. Modul JavaScriptu, který se dá importovat nebo vyžadovat, a umožňuje aplikaci pracovat se službou během běhu (například kontrolovat aktualizace, kontrolovat metadata o aktuálně spuštěné aktualizaci aplikace).

  2. Nativní rozhraní API (Objective-C a Java), které umožňuje hostiteli nativní aplikace React spustit samotný se správným umístěním sady JS.

Následující části podrobně popisují tvar a chování těchto rozhraní API:

Referenční informace k rozhraní JAVAScript API

Pokud potřebujetereact-native-code-push, objekt modulu kromě dekorátoru komponenty kořenové úrovně poskytuje následující metody nejvyšší úrovně:

  • allowRestart: Relows programmatic restarts to in a result of an update being installed, and optionally, restarts the app if a pending update had attempt to restart the app while restarts were disallowed. Tato metoda je pokročilým rozhraním API a je nutná pouze v případě, že vaše aplikace explicitně nepovoluje restartování prostřednictvím disallowRestart metody.

  • checkForUpdate: Zeptá se služby CodePush, zda má nakonfigurované nasazení aplikace k dispozici aktualizaci.

  • disallowRestart: V důsledku instalace aktualizace CodePush dočasně zakáže všechny programové restartování. Tato metoda je pokročilá rozhraní API a je užitečná, když komponenta v aplikaci (například proces onboardingu) potřebuje zajistit, aby během své životnosti nedošlo k přerušení koncových uživatelů.

  • getCurrentPackage: Načte metadata o aktuálně nainstalované aktualizaci (například popis, doba instalace, velikost).

    Poznámka:

    v1.10.3-beta Od modulu getCurrentPackage CodePush je ve prospěch getUpdateMetadata*.

  • getUpdateMetadata: Načte metadata nainstalované aktualizace (například popis, povinný).

  • notifyAppReady: Oznámí modulu runtime CodePush, že je nainstalovaná aktualizace považována za úspěšnou. Pokud ručně kontrolujete a instalujete aktualizace (která nepoužívá metodu synchronizace ke zpracování všech za vás), je potřeba tuto metodu volat. Jinak codePush bude považovat aktualizaci za neúspěšnou a při příštím restartování aplikace se vrátí zpět k předchozí verzi.

  • restartApp: Okamžitě restartuje aplikaci. Pokud čeká na aktualizaci, zobrazí se koncovému uživateli okamžitě. Jinak volání této metody má stejné chování jako ukončení koncového uživatele a restartování procesu.

  • synchronizace: Umožňuje vyhledat aktualizaci, stáhnout ji a nainstalovat, a to vše jedním voláním. Pokud nepotřebujete vlastní uživatelské rozhraní nebo chování, doporučujeme většině vývojářů tuto metodu použít při integraci CodePush do svých aplikací.

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)

Používá se k zabalení komponenty React uvnitř komponenty React vyššího pořadí, která ví, jak synchronizovat sadu JavaScriptu vaší aplikace a prostředky imagí při připojení. Součást vyššího řádu volá sync uvnitř svého componentDidMount popisovače životního cyklu, která spouští kontrolu aktualizací, stáhne aktualizaci, pokud existuje, a nainstaluje aktualizaci za vás.

Tento dekorátor poskytuje podporu pro přizpůsobení jeho chování, aby bylo možné snadno povolit aplikace s různými požadavky. Níže je několik příkladů způsobů, jak ho můžete použít (můžete vybrat jednu nebo dokonce použít kombinaci):

  1. Bezobslužná synchronizace při spuštění aplikace (nejjednodušší výchozí chování) Vaše aplikace automaticky stáhne dostupné aktualizace a použije je při příštím restartování aplikace (například operační systém nebo koncový uživatel ho zabil nebo se zařízení restartovalo). Tímto způsobem je celé prostředí aktualizace pro koncového uživatele "tiché", protože se nezobrazí žádná výzva k aktualizaci ani "syntetické" restartování aplikace.

    // 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. Bezobslužná synchronizace při každém obnovení aplikace Stejné jako 1, s výjimkou toho, že kontrolujeme aktualizace, nebo použijeme aktualizaci, pokud existuje pokaždé, když se aplikace po "pozadí" vrátí do popředí.

    // 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. Interaktivní. Jakmile je aktualizace k dispozici, před stažením vyzve koncového uživatele k zadání oprávnění a okamžitě ji nainstalujte. Pokud byla aktualizace vydána pomocí příznaku mandatory , koncový uživatel by stále dostával oznámení o aktualizaci, ale neměl by možnost ji ignorovat.

    // 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. Průběh protokolování nebo zobrazení Zatímco se aplikace synchronizuje se serverem pro aktualizace, využijte codePushStatusDidChange hooky událostí codePushDownloadDidProgress k odhlášení různých fází tohoto procesu nebo dokonce zobrazení indikátoru průběhu uživateli.

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

Dekorátor codePush přijímá objekt "options", který umožňuje přizpůsobit mnoho aspektů výchozího chování uvedeného výše:

  • checkFrequency (codePush.CheckFrequency) – určuje, kdy chcete vyhledat aktualizace. Výchozí hodnota codePush.CheckFrequency.ON_APP_STARTje . CheckFrequency Popis dostupných možností a jejich provedení najdete v referenčních informacích k výčtu.

  • deploymentKey (String) – Určuje klíč nasazení, který chcete dotazovat na aktualizaci. Ve výchozím nastavení je tato hodnota odvozena ze souboru Info.plist (iOS) a MainActivity.java souboru (Android), ale tato možnost umožňuje přepsat ji ze strany skriptu, pokud potřebujete dynamicky používat jiné nasazení.

  • installMode (codePush.InstallMode) – Určuje, kdy chcete nainstalovat volitelné aktualizace (ty, které nejsou označené jako povinné). Výchozí hodnota codePush.InstallMode.ON_NEXT_RESTARTje . InstallMode Popis dostupných možností a jejich provedení najdete v referenčních informacích k výčtu.

  • mandatoryInstallMode (codePush.InstallMode) – Určuje, kdy chcete nainstalovat aktualizace, které jsou označené jako povinné. Výchozí hodnota codePush.InstallMode.IMMEDIATEje . InstallMode Popis dostupných možností a jejich provedení najdete v referenčních informacích k výčtu.

  • minimumBackgroundDuration (Number) – Určuje minimální počet sekund, po který má aplikace být na pozadí před restartováním aplikace. Tato vlastnost se vztahuje pouze na aktualizace, které jsou nainstalovány pomocí InstallMode.ON_NEXT_RESUME nebo InstallMode.ON_NEXT_SUSPENDa může být užitečné pro získání aktualizace před koncovými uživateli dříve, aniž by to bylo příliš rušivé. 0Ve výchozím nastavení platí , který aktualizaci použije hned po obnovení, nebo pokud pozastavení aplikace není dostatečně dlouhé, aby nezáleželo, ale dlouho je na pozadí.

  • updateDialog (UpdateDialogOptions) – objekt "options" sloužící k určení, jestli se má koncovému uživateli zobrazit potvrzovací dialogové okno, když je k dispozici aktualizace, a pokud ano, jaké řetězce se mají použít. Výchozí hodnota nullje , která zakáže dialogové okno. Nastavením na libovolnou true hodnotu povolíte dialogové okno s výchozími řetězci a předáním objektu tomuto parametru povolíte dialogové okno a přepíšete jeden nebo více výchozích řetězců. Před povolením této možnosti v distribuované aplikaci app Storu si přečtěte tuto poznámku.

    Následující seznam představuje dostupné možnosti a jejich výchozí hodnoty:

    • appendReleaseDescription (Boolean) – označuje, jestli chcete ke zprávě s oznámením přidat popis dostupné verze, která se zobrazí koncovému uživateli. Výchozí hodnota falseje .

    • descriptionPrefix (String) – označuje řetězec, se kterým chcete přidat před popis verze, pokud existuje, při zobrazení oznámení o aktualizaci koncovému uživateli. Výchozí hodnota " Description: "

    • mandatoryContinueButtonLabel (String) – text, který se má použít pro tlačítko, musí koncový uživatel stisknout, aby nainstaloval povinnou aktualizaci. Výchozí hodnota "Continue"je .

    • mandatoryUpdateMessage (String) – text použitý jako text oznámení o aktualizaci, pokud je aktualizace určena jako povinná. Výchozí hodnota "An update is available that must be installed."je .

    • optionalIgnoreButtonLabel (String) – text, který se má použít pro tlačítko, může koncový uživatel stisknout a ignorovat volitelnou dostupnou aktualizaci. Výchozí hodnota "Ignore"je .

    • optionalInstallButtonLabel (String) – text, který se má použít pro tlačítko, může koncový uživatel stisknout a nainstalovat volitelnou aktualizaci. Výchozí hodnota "Install"je .

    • optionalUpdateMessage (String) – text použitý jako text oznámení o aktualizaci, pokud je aktualizace nepovinná. Výchozí hodnota "An update is available. Would you like to install it?"je .

    • title (String) – text použitý jako záhlaví oznámení o aktualizaci, které se zobrazí koncovému uživateli. Výchozí hodnota "Update available"je .

  • rollbackRetryOptions (RollbackRetryOptions) – Mechanismus opakování vrácení zpět umožňuje aplikaci pokusit se přeinstalovat aktualizaci, která byla dříve vrácena zpět (s omezeními uvedenými v možnostech). Jedná se o objekt "options", který slouží k určení, jestli se má opakovat vrácení zpět, a pokud ano, jaká nastavení se mají použít pro opakování vrácení zpět. Výchozí hodnota je null, což má vliv na zakázání mechanismu opakování. Nastavením této hodnoty na hodnotu pravdivosti povolíte mechanismus opakování s výchozím nastavením a předáním objektu tomuto parametru povolíte opakování vrácení zpět a přepíšete jednu nebo více výchozích hodnot.

    Následující seznam představuje dostupné možnosti a jejich výchozí hodnoty:

    • delayInHours (Číslo) – Určuje minimální dobu v hodinách, po které bude aplikace čekat po posledním vrácení zpět, než se pokusí znovu nainstalovat stejný vrácený balíček. Nesmí být menší než 0. Může se jednat o číslo s plovoucí čárkou. Výchozí hodnota 24je .

    • maxRetryAttempts (Number) – Určuje maximální počet pokusů o opakování, které může aplikace provést, než se přestane pokoušet. Nesmí být menší než 1. Výchozí hodnota 1je .

codePushStatusDidChange (hook události)

Volá se, když se proces synchronizace přesune z jedné fáze do druhé v celkovém procesu aktualizace. Volání háku události se stavovým kódem, který představuje aktuální stav, a může to být libovolná SyncStatus hodnota.

codePushDownloadDidProgress (hook události)

Volá se pravidelně, když se z serveru CodePush stahuje dostupná aktualizace. Metoda je volána s objektem DownloadProgress , který obsahuje následující dvě vlastnosti:

  • totalBytes (Number) – celkový počet bajtů očekávaných pro tuto aktualizaci (to je velikost sady souborů, které se změnily z předchozí verze).

  • receivedBytes (Number) – počet bajtů stažených doposud, které lze použít ke sledování průběhu stahování.

codePush.allowRestart

codePush.allowRestart(): void;

Relows programmatic restarts to nastat, to by jinak bylo odmítnuto z důvodu předchozího volání disallowRestart. Pokud disallowRestart nebyl nikdy volána na prvním místě, volání této metody má za následek no-op.

Pokud aktualizace CodePush aktuálně čeká na vyřízení, která se pokusila aplikaci restartovat (například použila InstallMode.IMMEDIATE), ale byla zablokována kvůli disallowRestart volání, volání allowRestart způsobí okamžité restartování. Toto restartování umožňuje co nejdříve použít aktualizaci bez přerušení koncového uživatele během kritických pracovních postupů (například procesu onboardingu).

Volání allowRestart by například aktivovalo okamžité restartování, pokud se po zavolání některé ze tří scénářů uvedených v disallowRestart dokumentaci vyskytly disallowRestart . Volání allowRestart by však neaktivovalo restartování, pokud jsou splněny následující body:

  1. Od posledního disallowRestart zavolání nebyly nainstalovány žádné aktualizace CodePush, takže není potřeba restartovat.

  2. V současné době probíhá čekající aktualizace CodePush, ale byla nainstalována prostřednictvím InstallMode.ON_NEXT_RESTARTprogramu, takže programové restartování není potřeba.

  3. V současné době probíhá čekající aktualizace CodePush, ale byla nainstalována prostřednictvím InstallMode.ON_NEXT_RESUME aplikace a aplikace ještě nebyla vložena na pozadí, takže ještě není nutné programově restartovat.

  4. Od posledního disallowRestart volání nebyla provedena žádná volánírestartApp.

Toto chování zajišťuje, že se v důsledku volání allowRestart neaktivují žádné restartování, pokud se o ně explicitně nepožádá během zakázaného období. Tímto způsobem se podobá volání restartApp(true), s výjimkou předchozího se aktivuje restartování pouze v případě, allowRestart že aktuálně čekající aktualizace chtěla restartovat, ale druhá by se restartovala, pokud čeká na aktualizaci.

Příklad použití této metody najdete v tématu disallowRestart .

codePush.checkForUpdate

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

Dotazuje službu CodePush a zjistí, jestli má nakonfigurované nasazení aplikace k dispozici aktualizaci. Ve výchozím nastavení použije klíč nasazení nakonfigurovaný v souboru Info.plist (iOS) nebo MainActivity.java souboru (Android), ale můžete ho přepsat zadáním hodnoty prostřednictvím volitelného deploymentKey parametru. To může být užitečné, když chcete uživatele dynamicky přesměrovat na konkrétní nasazení, například povolit "přednostní přístup" přes velikonoční vejce nebo přepínač nastavení uživatele.

Druhý volitelný parametr handleBinaryVersionMismatchCallback je volitelná funkce zpětného volání, která se dá použít k upozorňovat uživatele, pokud existuje nějaká binární aktualizace. Představte si například případ použití, kdy aktuálně nainstalovaná binární verze je 1.0.1 s popiskem (popisek push label kódu) v1. Později se v vývojovém cyklu změnil nativní kód a binární verze byla aktualizována na verzi 1.0.2. Když se aktivuje kontrola aktualizace kódu, ignorujeme aktualizace, které mají neshodu binární verze (protože aktualizace necílí na binární verzi aktuálně nainstalované aplikace). V tomto případě nainstalovaná aplikace (1.0.1) bude ignorovat aktualizaci cílenou na verzi 1.0.2. Můžete použít handleBinaryVersionMismatchCallback k poskytnutí háku pro zpracování takových situací.

Důležité

Upozornění v rámci tohoto zpětného volání buďte opatrní, pokud vyvíjíte aplikaci pro iOS z důvodu procesu kontroly App Storu : Aplikace nesmí vynutit, aby aplikaci ohodnotit, zkontrolovali aplikaci, stáhli jiné aplikace nebo jiné podobné akce pro přístup k funkcím, obsahu nebo používání aplikace.

Tato metoda vrátí Promisechybu, která se přeloží na jednu ze dvou možných hodnot:

  1. null pokud není k dispozici aktualizace. Může k nim dojít v následujících situacích:

    1. Nakonfigurované nasazení neobsahuje žádné vydané verze, takže se nic neaktualizuje.
    2. Nejnovější vydaná verze v rámci nakonfigurovaného nasazení cílí na jinou binární verzi, než je aktuálně spuštěná (starší nebo novější).
    3. Aktuálně spuštěná aplikace už má nejnovější verzi z nakonfigurovaného nasazení, takže ji už nepotřebujete znovu.
    4. Nejnovější verze v rámci nakonfigurovaného nasazení je aktuálně označená jako zakázaná, takže se nedá stáhnout.
    5. Nejnovější vydaná verze v rámci nakonfigurovaného nasazení je ve stavu aktivního zavedení a žádající zařízení nesplní procento uživatelů, kteří k němu mají nárok.
  2. Instance RemotePackage , která představuje dostupnou aktualizaci, kterou lze zkontrolovat nebo později stáhnout.

Příklad použití:

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;

Dočasně zakáže programové restartování v důsledku některého z následujících scénářů:

  1. Aktualizace CodePush se instaluje pomocí InstallMode.IMMEDIATE

  2. Aktualizace CodePush se instaluje pomocí InstallMode.ON_NEXT_RESUME a aplikace se obnoví z pozadí (volitelně se minimumBackgroundDuration omezuje vlastností).

  3. Metoda restartApp byla volána.

    Poznámka:

    Kroky 1 a 2 efektivně fungují voláním restartApp za vás, takže si můžete představit disallowRestart , že blokuje jakékoli volání restartApp, ať už ji vaše aplikace volá přímo nebo nepřímo.

Po volání této metody budou všechna volání sync stále povolena ke kontrole aktualizace, stažení a instalaci, ale pokus o restartování aplikace bude zařazen do fronty, dokud allowRestart nebude volána. Tímto způsobem se požadavek na restartování zachytí a může být "vyprázdněný", kdykoli ho chcete povolit.

Jedná se o pokročilé rozhraní API, které je primárně užitečné v případě, že jednotlivé komponenty v aplikaci (jako je proces onboardingu) potřebují zajistit, aby během své životnosti nedošlo k žádnému přerušení koncového uživatele, a zároveň i nadále umožnit synchronizaci aplikace se serverem CodePush vlastním tempem a používáním libovolného režimu instalace. To má výhodu, že aplikaci umožňuje co nejdříve zjišťovat a stahovat dostupné aktualizace a zároveň bránit přerušení během klíčových prostředí koncových uživatelů.

Jako alternativu můžete také použít InstallMode.ON_NEXT_RESTART při volání sync (které se nikdy nepokusí programově restartovat aplikaci) a explicitně zavolat restartApp na body v aplikaci, které jsou "bezpečné". disallowRestart poskytuje alternativní přístup k tomu, pokud je kód, který se synchronizuje se serverem CodePush, oddělený od kódu nebo komponent, které chtějí vynutit zásady bez restartování.

Příklad použití:

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

Poznámka:

Tato metoda je považována za za zastaralou v v1.10.3-beta modulu CodePush. Pokud používáte tuto verzi (nebo novější), doporučujeme místo toho použít codePush.getUpdateMetadata , protože má předvídatelnější chování.

codePush.getCurrentPackage(): Promise<LocalPackage>;

Načte metadata o aktuálně nainstalovaném balíčku (například popis, čas instalace). To může být užitečné pro scénáře, jako je zobrazení dialogového okna "co je nového?" po instalaci aktualizace nebo kontrola, jestli existuje čekající aktualizace, která čeká na použití prostřednictvím životopisu nebo restartování.

Tato metoda vrátí Promisechybu, která se přeloží na jednu ze dvou možných hodnot:

  1. null Pokud aplikace aktuálně spouští sadu JS z binárního souboru, a ne z aktualizace CodePush. K tomu dochází v následujících scénářích:

    1. Koncový uživatel nainstaloval binární soubor aplikace a ještě si nainstaloval aktualizaci CodePush.
    2. Koncový uživatel nainstaloval aktualizaci binárního souboru (například z úložiště), který vymazal staré aktualizace CodePush a dal přednost binárnímu souboru JS v binárním souboru.
  2. Instance LocalPackage , která představuje metadata pro aktuálně spuštěnou aktualizaci CodePush.

Příklad použití:

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

Načte metadata nainstalované aktualizace (například popis, povinné), jejíž stav odpovídá zadanému updateState parametru. To může být užitečné pro scénáře, jako je zobrazení dialogového okna "co je nového?" po instalaci aktualizace nebo kontrola, jestli existuje čekající aktualizace, která čeká na použití prostřednictvím životopisu nebo restartování. Další informace o možných stavech aktualizací a jejich reprezentaci naleznete v odkazu UpdateState.

Tato metoda vrátí Promisechybu, která se přeloží na jednu ze dvou možných hodnot:

  1. null pokud aktualizace se zadaným stavem aktuálně neexistuje. K tomu dochází v následujících scénářích:

    1. Koncový uživatel ještě nenainstaloval žádné aktualizace CodePush a proto nejsou k dispozici žádná metadata pro žádné aktualizace, ať zadáte jako updateState parametr.

    2. Koncový uživatel nainstaloval aktualizaci binárního souboru (například z úložiště), který vymazal staré aktualizace CodePush a dal přednost binárnímu souboru JS v binárním souboru. Vykazuje stejné chování jako #1.

    3. Parametr updateState je nastavený na UpdateState.RUNNING, ale aplikace aktuálně nespouštět aktualizaci CodePush. Může se jednat o čekající aktualizaci, ale aplikace se ještě nerestartovala, aby byla aktivní.

    4. Parametr updateState je nastavený na UpdateState.PENDING, ale aplikace nemá aktuálně čekající aktualizace.

  2. Instance LocalPackage , která představuje metadata pro aktuálně požadovanou aktualizaci CodePush (spuštěné nebo čekající).

Příklad použití:

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

Upozorní modul runtime CodePush, že by měla být nově nainstalovaná aktualizace považována za úspěšnou, takže automatické vrácení na straně klienta není nutné. Je povinné volat tuto funkci někde v kódu aktualizované sady. V opačném případě se při příštím restartování aplikace modul runtime CodePush předpokládá, že nainstalovaná aktualizace selhala a vrátí se zpět k předchozí verzi. Toto chování vám pomůže zajistit, aby koncoví uživatelé nebyli blokováni poškozenou aktualizací.

Pokud používáte sync funkci a provádíte kontrolu aktualizace při spuštění aplikace, nemusíte volat notifyAppReady ručně, protože sync ji budete volat za vás. Toto chování existuje kvůli předpokladu, že při sync zavolání ve vaší aplikaci představuje dobrou aproximaci úspěšného spuštění.

Poznámka:

Tato metoda je také aliasována jako notifyApplicationReady (kvůli zpětné kompatibilitě).

codePush.restartApp

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

Okamžitě restartuje aplikaci. Pokud je parametru onlyIfUpdateIsPending zadaná hodnota pravdivosti, aplikace se restartuje jenom v případě, že čeká na použití čekající aktualizace.

Tato metoda je určená pro pokročilé scénáře a je primárně užitečná, pokud jsou splněny následující podmínky:

  1. Aplikace určuje hodnotu ON_NEXT_RESTART režimu instalace nebo ON_NEXT_RESUME při volání sync metod nebo LocalPackage.install metod. Tím se aktualizace neaktualizuje, dokud se aplikace nerestartuje (buď koncovým uživatelem, nebo operačním systémem), nebo se obnoví, a proto se aktualizace okamžitě nezobrazí koncovému uživateli.

  2. Máte událost uživatele specifickou pro aplikaci (například koncový uživatel přešli zpět na domovskou trasu aplikace), která umožňuje aktualizaci použít nerušivým způsobem a potenciálně získá aktualizaci koncovému uživateli dříve, než čeká na další restartování nebo obnovení.

codePush.sync

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

Synchronizuje sadu javascriptových prostředků aplikace a prostředky image s nejnovější verzí s nakonfigurovaným nasazením. Na rozdíl od metody checkForUpdate, která kontroluje přítomnost aktualizace, a pojďme řídit, co dělat dál, sync zpracovává kontrolu aktualizací, stahování a instalaci za vás.

Tato metoda poskytuje podporu pro dva různé (ale přizpůsobitelné) režimy, které umožňují snadné povolení aplikací s různými požadavky:

  1. Bezobslužný režim (výchozí chování) automaticky stáhne dostupné aktualizace a použije je při příštím restartování aplikace (například operační systém nebo koncový uživatel ho zabil nebo se zařízení restartovalo). Tímto způsobem je celé prostředí aktualizace pro koncového uživatele "tiché", protože se nezobrazí žádná výzva k aktualizaci ani "syntetické" restartování aplikace.

  2. Aktivní režim, který při dostupnosti aktualizace vyzve koncového uživatele k zadání oprávnění před jeho stažením a okamžitě tuto aktualizaci použije. Pokud byla aktualizace vydána pomocí příznaku mandatory , koncový uživatel by stále dostával oznámení o aktualizaci, ale neměl by možnost ji ignorovat.

Příklad použití:

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

Tip

Pokud se chcete rozhodnout, jestli zkontrolujete nebo stáhnete dostupnou aktualizaci na základě stavu baterie koncového uživatele, stavu sítě atd. Pak hovor sync zabalíte do stavu, který zajistí, že budete volat jenom v případě potřeby.

SyncOptions

I když se sync metoda snaží snadno provádět tiché a aktivní aktualizace s malou konfigurací, přijímá objekt "options", který umožňuje přizpůsobit mnoho aspektů výchozího chování uvedeného výše. Dostupné možnosti jsou stejné jako CodePushOptions s výjimkou checkFrequency možnosti:

Příklad použití:

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

Kromě možností sync metoda také přijímá několik volitelných parametrů funkce, které umožňují přihlásit se k odběru životního cyklu sync kanálu, aby se podle potřeby zobrazilo další uživatelské rozhraní (například "kontrola modální aktualizace nebo modální modální režim stahování):

  • syncStatusChangedCallback ((syncStatus: Number) => void) – Volá se, když se proces synchronizace přesune z jedné fáze do druhé v celkovém procesu aktualizace. Metoda je volána se stavovým kódem, který představuje aktuální stav a může být libovolnou SyncStatus z hodnot.

  • downloadProgressCallback ((progress: DownloadProgress) => void) – Volá se pravidelně při stahování dostupné aktualizace ze serveru CodePush. Metoda je volána s objektem DownloadProgress , který obsahuje následující dvě vlastnosti:

    • totalBytes (Number) – celkový počet bajtů očekávaných pro tuto aktualizaci (to je velikost sady souborů, které se změnily z předchozí verze).

    • receivedBytes (Number) – počet bajtů stažených doposud, které lze použít ke sledování průběhu stahování.

  • handleBinaryVersionMismatchCallback ((update: RemotePackage) => void) – Volá se, pokud jsou k dispozici nějaké binární aktualizace. Metoda je volána s objektem RemotePackage . Další podrobnosti najdete v části codePush.checkForUpdate .

Příklad použití:

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

Tato metoda vrátí Promise, který je vyřešen na SyncStatus kód, který označuje, proč sync volání bylo úspěšné. Tento kód může být jedna z následujících SyncStatus hodnot:

  • codePush.SyncStatus.UP_TO_DATE (4) – Aplikace je aktuální se serverem CodePush.

  • codePush.SyncStatus.UPDATE_IGNORED (5) – Aplikace měla volitelnou aktualizaci, kterou koncový uživatel zvolil ignorovat. (To platí jenom v případě, že updateDialog se používá)

  • codePush.SyncStatus.UPDATE_INSTALLED (6) – Aktualizace byla nainstalována a spustí se buď okamžitě po syncStatusChangedCallback vrácení funkce, nebo při příštím obnovení nebo restartování aplikace v závislosti na zadaném parametru SyncOptionsInstallMode .

  • codePush.SyncStatus.SYNC_IN_PROGRESS (7) – Probíhá probíhající sync operace, která brání spuštění aktuálního volání.

Metodu sync lze volat kdekoli, kde chcete vyhledat aktualizaci. To může být v componentWillMount případě životního cyklu kořenové komponenty, obslužné <TouchableHighlight> rutiny onPress komponenty, v zpětném volání pravidelného časovače nebo cokoli jiného dává smysl pro vaše potřeby. Stejně jako tato checkForUpdate metoda provede požadavek na síť, aby zkontroloval aktualizaci na pozadí, takže nebude mít vliv na odezvu vlákna uživatelského rozhraní nebo vlákna JavaScriptu.

Zabalení objektů

Tyto checkForUpdate metody getUpdateMetadata vrací Promise objekty, které při vyřešení poskytují přístup k objektům "package". Balíček představuje aktualizaci kódu a všechna další metadata (například popis, povinné?). Rozhraní API CodePush má rozdíl mezi následujícími typy balíčků:

  • LocalPackage: Představuje staženou aktualizaci, která už je spuštěná nebo je nainstalovaná a čeká na restartování aplikace.

  • RemotePackage: Představuje dostupnou aktualizaci na serveru CodePush, který ještě nebyl stažen.

LocalPackage

Obsahuje podrobnosti o aktualizaci, která byla stažena místně nebo již nainstalována. Odkaz na instanci tohoto objektu můžete získat voláním metody na úrovni getUpdateMetadata modulu nebo jako hodnota příslibu vráceného metodou RemotePackage.download .

Vlastnosti
  • appVersion: Binární verze aplikace, na které tato aktualizace závisí. Toto je hodnota zadaná prostřednictvím parametru appStoreVersion při volání příkazu rozhraní příkazového release řádku. (Řetězec)
  • deploymentKey: Klíč nasazení, který byl použit k původnímu stažení této aktualizace. (Řetězec)
  • description: Popis aktualizace. Jedná se o stejnou hodnotu, kterou jste zadali v rozhraní příkazového řádku při vydání aktualizace. (Řetězec)
  • Instalace se nezdařila: Označuje, zda byla tato aktualizace dříve nainstalována, ale byla vrácena zpět. Metoda sync automaticky ignoruje aktualizace, které se dříve nezdařily, takže se o tuto vlastnost potřebujete starat pouze v případě, že používáte checkForUpdate. (Logická hodnota)
  • isFirstRun: Označuje, jestli se jedná o první spuštění aktualizace po instalaci. To je užitečné při určování, jestli chcete zobrazit "Co je nového?". Uživatelské rozhraní koncovému uživateli po instalaci aktualizace (Logická hodnota)
  • isMandatory: Označuje, zda je aktualizace považována za povinnou. Toto je hodnota, která byla zadána v rozhraní příkazového řádku při vydání aktualizace. (Logická hodnota)
  • isPending: Označuje, jestli je tato aktualizace ve stavu čeká na vyřízení. Pokud trueto znamená, že aktualizace byla stažena a nainstalována, ale restartování aplikace potřebné k jeho použití ještě nedošlo, a proto jeho změny nejsou aktuálně viditelné pro koncového uživatele. (Logická hodnota)
  • label: Interní popisek automaticky udělený aktualizaci serverem CodePush, například v5. Tato hodnota jednoznačně identifikuje aktualizaci v rámci jejího nasazení. (Řetězec)
  • packageHash: Hodnota hash SHA aktualizace. (Řetězec)
  • packageSize: Velikost kódu obsaženého v aktualizaci v bajtech. (Číslo)
Metody
  • install(installMode: codePush.InstallMode = codePush.InstallMode.ON_NEXT_RESTART, minimumBackgroundDuration = 0): Promise<void>: Nainstaluje aktualizaci tím, že ji uloží do umístění na disku, kde modul runtime očekává nalezení nejnovější verze aplikace. Parametr installMode určuje, kdy se změny zobrazí koncovému uživateli. Výchozí hodnota je počkat na další restartování aplikace, aby se zobrazily změny, ale můžete odkazovat na InstallMode referenční informace k výčtu popis dostupných možností a jejich provedení. installMode Pokud je parametr nastavený na InstallMode.ON_NEXT_RESUME, minimumBackgroundDuration pak vám parametr umožňuje určit, jak dlouho musí být aplikace na pozadí, než vynutí instalaci po obnovení.

RemotePackage

Obsahuje podrobnosti o aktualizaci, která je k dispozici ke stažení ze serveru CodePush. Odkaz na instanci tohoto objektu získáte voláním checkForUpdate metody, když je k dispozici aktualizace. Pokud používáte sync rozhraní API, nemusíte se starat o RemotePackagerozhraní API, protože se automaticky zpracuje proces stahování a instalace.

Vlastnosti

Dědí RemotePackage všechny stejné vlastnosti jako vlastnost LocalPackage, ale obsahuje jednu další:

  • downloadUrl: Adresa URL, kde je balíček k dispozici ke stažení. Tato vlastnost je potřebná pouze pro pokročilé použití, protože download metoda automaticky zpracuje získávání aktualizací za vás. (Řetězec)
Metody
  • download(downloadProgressCallback?: Function): Promise<LocalPackage>: Stáhne dostupnou aktualizaci ze služby CodePush. downloadProgressCallback Pokud je zadaný, bude volána pravidelně s objektem DownloadProgress ({ totalBytes: Number, receivedBytes: Number }), který hlásí průběh stahování, dokud se neskončí. Vrátí příslib, který se vyřeší s LocalPackage.

Výčty

Rozhraní CodePush API obsahuje následující výčty, které lze použít k přizpůsobení prostředí aktualizace:

InstallMode

Tento výčet určuje, kdy chcete, aby byla skutečně použita nainstalovaná aktualizace, a lze ji předat buď metodám sync , nebo LocalPackage.install metodám. Obsahuje následující hodnoty:

  • codePush.InstallMode.IMMEDIATE (0) – označuje, že chcete nainstalovat aktualizaci a okamžitě aplikaci restartovat. Tato hodnota je vhodná pro scénáře ladění a také při zobrazení výzvy k aktualizaci uživateli, protože by očekával, že změny uvidí hned po přijetí instalace. Kromě toho se tento režim dá použít k vynucení povinných aktualizací, protože odebere potenciálně nežádoucí latenci mezi instalací aktualizace a při příštím restartování nebo obnovení aplikace koncovým uživatelem.

  • codePush.InstallMode.ON_NEXT_RESTART (1) – označuje, že chcete nainstalovat aktualizaci, ale ne vynuceně restartovat aplikaci. Když se aplikace "přirozeně" restartuje (z důvodu ukončení operačního systému nebo koncového uživatele), aktualizace se bez problémů vyzvedne. Tato hodnota je vhodná při provádění tichých aktualizací, protože pravděpodobně naruší koncového uživatele, pokud se aplikace náhle restartuje mimo žádné místo. Neuvědomili si, že aktualizace byla dokonce stažena. Toto je výchozí režim používaný pro obě sync metody i LocalPackage.install pro metody.

  • codePush.InstallMode.ON_NEXT_RESUME (2) – Označuje, že chcete nainstalovat aktualizaci, ale nechcete aplikaci restartovat, dokud ji koncový uživatel příště neobnoví z pozadí. Tímto způsobem nenarušíte jejich aktuální relaci, ale aktualizaci před nimi můžete získat dříve, než budete muset počkat na další přirozený restart. Tato hodnota je vhodná pro bezobslužné instalace, které lze použít při obnovení neinvazivním způsobem.

  • codePush.InstallMode.ON_NEXT_SUSPEND (3) – označuje, že chcete nainstalovat aktualizaci na pozadí, ale až po dobu sekund minimumBackgroundDuration (0) na pozadí, aby se kontext uživatele neztratil, pokud není pozastavení aplikace dostatečně dlouhé, aby nezáleželo.

CheckFrequency

Tento výčet určuje, kdy se má vaše aplikace synchronizovat se serverem pro aktualizace a lze ji předat dekorátoru codePushify . Obsahuje následující hodnoty:

  • codePush.CheckFrequency.ON_APP_START (0) – označuje, že chcete vyhledat aktualizace při každém spuštění procesu aplikace.

  • codePush.CheckFrequency.ON_APP_RESUME (1) – Označuje, že chcete vyhledat aktualizace, kdykoli se aplikace po "na pozadí" vrátí do popředí (uživatel stiskl tlačítko Domů, aplikace spustí samostatný platební proces atd.).

  • codePush.CheckFrequency.MANUAL (2) – Zakažte automatickou kontrolu aktualizací, ale zkontrolujte, kdy codePush.sync() se volá v kódu aplikace.

SyncStatus

Tento výčet je poskytován syncStatusChangedCallback funkci, kterou lze předat sync metodě, aby se mohl připojit k celkovému procesu aktualizace. Obsahuje následující hodnoty:

  • codePush.SyncStatus.CHECKING_FOR_UPDATE (0) – Server CodePush se dotazuje na aktualizaci.
  • codePush.SyncStatus.AWAITING_USER_ACTION (1) – Je k dispozici aktualizace a koncovému uživateli se zobrazilo potvrzovací dialogové okno. (To platí jenom v případě, že updateDialog se používá)
  • codePush.SyncStatus.DOWNLOADING_PACKAGE (2) – z serveru CodePush se stahuje dostupná aktualizace.
  • codePush.SyncStatus.INSTALLING_UPDATE (3) – byla stažena dostupná aktualizace a chystá se ji nainstalovat.
  • codePush.SyncStatus.UP_TO_DATE (4) – Aplikace je plně aktuální s nakonfigurovaným nasazením.
  • codePush.SyncStatus.UPDATE_IGNORED (5) – Aplikace má volitelnou aktualizaci, kterou koncový uživatel zvolil ignorovat. (To platí jenom v případě, že updateDialog se používá)
  • codePush.SyncStatus.UPDATE_INSTALLED (6) – byla nainstalována dostupná aktualizace a spustí se buď okamžitě po syncStatusChangedCallback vrácení funkce, nebo při příštím obnovení nebo restartování aplikace v závislosti na zadaném parametru SyncOptionsInstallMode .
  • codePush.SyncStatus.SYNC_IN_PROGRESS (7) – Probíhající sync operace brání spuštění aktuálního volání.
  • codePush.SyncStatus.UNKNOWN_ERROR (-1) – Operace synchronizace našla neznámou chybu.

UpdateState

Tento výčet určuje stav, ve které je aktuálně aktualizace, a lze jej zadat při volání getUpdateMetadata metody. Obsahuje následující hodnoty:

  • codePush.UpdateState.RUNNING (0) – označuje, že aktualizace představuje verzi aplikace, která je aktuálně spuštěná. To může být užitečné pro identifikaci atributů aplikace, pro scénáře, jako je zobrazení popisu vydané verze v dialogovém okně "co je nového?" nebo generování sestav nejnovější verze službě analýzy nebo hlášení chybových ukončení.

  • codePush.UpdateState.PENDING (1) – označuje, že byla nainstalována aktualizace, ale aplikace se ještě nerestartovala, aby ji nainstalovala. To může být užitečné pro určení, jestli existuje čekající aktualizace, kterou můžete chtít vynutit, aby se programové restartování (prostřednictvím restartApp) použilo.

  • codePush.UpdateState.LATEST (2) – označuje, že aktualizace představuje nejnovější dostupnou verzi a může být aktuálně spuštěná nebo čekající.

Referenční dokumentace k rozhraní API Objective-C (iOS)

Rozhraní API Objective-C je dostupné importem hlavičky CodePush.h do souboru AppDelegate.m a skládá se z jedné veřejné třídy s názvem CodePush.

KódPush

Obsahuje statické metody pro načtení NSURL souboru nejnovější sady JavaScriptu a lze ji předat RCTRootViewmetodě 's initWithBundleURL při spuštění aplikace v souboru AppDelegate.m .

Metody CodePush třídy lze považovat za složené překladače, které vždy načítají příslušnou sadu, aby vyhovovaly následujícím scénářům:

  1. Když koncový uživatel nainstaluje vaši aplikaci z obchodu (například 1.0.0), získá sadu JS, která je obsažená v binárním souboru. Toto je chování, které byste získali bez použití KóduPush, ale ujistěte se, že se nepoškodí :)

  2. Jakmile začnete vydávat aktualizace CodePush, koncoví uživatelé získají sadu JS, která představuje nejnovější verzi pro nakonfigurované nasazení. Toto je chování, které vám umožní iterovat nad rámec toho, co jste odeslali do obchodu.

  3. Jakmile vydáte aktualizaci do app Storu (například 1.1.0) a koncoví uživatelé ji aktualizují, znovu získají sadu JS, která je obsažena v binárním souboru. Toto chování zajišťuje, aby se aktualizace CodePush, které cílí na předchozí binární verzi, nepoužívaly (protože nevíme, že by fungovalo) a vaši koncoví uživatelé vždy mají funkční verzi vaší aplikace.

  4. Zopakujte #2 a #3, protože verze CodePush a verze app Storu budou pokračovat do nekonečna (a navíc?)

Z tohoto chování můžete bezpečně nasadit aktualizace jak do app Storu, tak do CodePush podle potřeby a ujistit se, že koncoví uživatelé budou mít vždy nejnovější verzi.

Metody

  • (NSURL *)bundleURL – vrátí nejnovější sadu NSURL JS, jak je popsáno výše. Tato metoda předpokládá, že název sady JS obsažené v binárním souboru vaší aplikace je main.jsbundle.

  • (NSURL *)bundleURLForResource:(NSString *)resourceName – ekvivalent metody bundleURL , ale také umožňuje přizpůsobit název sady JS, která se hledá v binárním souboru aplikace. To je užitečné, pokud tento soubor main pojmete (což je výchozí konvence). Tato metoda předpokládá, že rozšíření sady JS je *.jsbundle.

  • (NSURL *)bundleURLForResource:(NSString *)resourceName withExtension:(NSString *)resourceExtension: Ekvivalent metody bundleURLForResource: , ale také umožňuje přizpůsobit rozšíření používané sadou JS, která se hledá v binárním souboru aplikace. To je užitečné, pokud tento soubor *.jsbundle pojmete (což je výchozí konvence).

  • (void)overrideAppVersion:(NSString *)appVersionOverride – nastaví verzi binárního rozhraní aplikace, která by jinak ve výchozím nastavení byla nastavena na verzi App Storu zadanou CFBundleShortVersionString jako v souboru Info.plist. To by se mělo volat jednou před načtením adresy URL sady.

  • (void)setDeploymentKey:(NSString *)deploymentKey – nastaví klíč nasazení, který má aplikace použít při dotazování na aktualizace. Jedná se o dynamickou alternativu k nastavení klíče nasazení v souboru Info.plist nebo zadání klíče nasazení v JS při volání checkForUpdate nebo sync.

Referenční informace k rozhraní Java API (Android)

Rozhraní API pro verzi React Native 0.60 a novější

Vzhledem k tomu autolinking , že se používá react-native.config.js k propojení modulů plug-in, jsou v tomto souboru zadány konstruktory. Můžete ale přepsat vlastní proměnné pro správu modulu plug-in CodePush tak, že tyto hodnoty umístíte do řetězcových prostředků.

  • Veřejný klíč – slouží k ověření sady v funkci podepisování kódu. Další podrobnosti o funkci podepisování kódu najdete v části Podepisování kódu. Chcete-li nastavit veřejný klíč, měli byste přidat obsah veřejného klíče s strings.xml názvem CodePushPublicKey. CodePush automaticky získá tuto vlastnost a povolí funkci Podepisování kódu. Příklad:

    <string moduleConfig="true" name="CodePushPublicKey">your-public-key</string>
    
  • Adresa URL serveru – slouží k určení adresy URL serveru CodePush. Výchozí hodnota: "https://codepush.appcenter.ms/" je přepsán přidáním cesty s strings.xml názvem CodePushServerUrl. CodePush automaticky získá tuto vlastnost a použije tuto cestu k odesílání požadavků. Příklad:

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

Rozhraní API pro React Native nižší než 0.60

Rozhraní Java API je dostupné importem com.microsoft.codepush.react.CodePush třídy do souboru MainActivity.java a skládá se z jedné veřejné třídy s názvem CodePush.

KódPush

Vytvoří modul runtime klienta CodePush a představuje ReactPackage instanci, kterou přidáte do seznamu balíčků vaší aplikace.

Konstruktory

  • CodePush(String deploymentKey, Activity mainActivity) – vytvoří novou instanci modulu runtime CodePush, která se použije k dotazování služby na aktualizace prostřednictvím zadaného klíče nasazení. Parametr mainActivity by měl být vždy nastaven při this konfiguraci seznamu balíčků React uvnitř MainActivity třídy. Tento konstruktor umístí modul runtime CodePush do režimu vydání, takže pokud chcete povolit chování ladění, použijte místo toho následující konstruktor.

  • CodePush(String deploymentKey, Activity mainActivity, bool isDebugMode) – ekvivalentní předchozímu konstruktoru, ale umožňuje určit, jestli má být modul runtime CodePush v režimu ladění, nebo ne. Při použití tohoto konstruktoru isDebugMode by měl být parametr vždy nastavený tak, aby BuildConfig.DEBUG zůstal synchronizovaný s vaším typem sestavení. Při vkládání KóduPush do režimu ladění jsou povolena následující chování:

    1. Staré aktualizace CodePush se neodstraní z úložiště při každém nasazení nového binárního souboru do emulátoru nebo zařízení. Toto chování vám umožní nasadit nové binární soubory, aniž byste během vývoje přetáhli verzi, aniž byste neustále dostávali stejnou aktualizaci pokaždé, když vaše aplikace volá sync.

    2. Místní mezipaměť, kterou modul runtime React Native udržuje v režimu ladění, se odstraní při každé instalaci aktualizace CodePush. Tím se zajistí, že se po instalaci aktualizace aplikace restartuje, je možné zobrazit očekávané změny. Jakmile se tato žádost o přijetí změn sloučí, už to nebudeme muset udělat.

  • CodePush(String deploymentKey, Context context, boolean isDebugMode, Integer publicKeyResourceDescriptor) – Ekvivalent předchozího konstruktoru, ale umožňuje zadat popisovač prostředku veřejného klíče potřebný ke čtení obsahu veřejného klíče. Další podrobnosti o funkci podepisování kódu najdete v části Podepisování kódu.

  • CodePush(String deploymentKey, context, boolean isDebugMode, String serverUrl) – Konstruktor umožňuje zadat adresu URL serveru CodePush. Výchozí hodnota: "https://codepush.appcenter.ms/" je přepsána hodnotou zadanou v serverUrl.

Statické metody

  • getBundleUrl() – vrátí cestu k nejnovější verzi souboru JS sady vaší aplikace za předpokladu, že název prostředku je index.android.bundle. Pokud vaše aplikace používá jiný název sady, použijte přetíženou verzi této metody, která ji umožňuje určit. Tato metoda má stejné chování řešení jako výše popsaný ekvivalent Objective-C.

  • getBundleUrl(String bundleName) – vrátí cestu k nejnovější verzi souboru JS vaší aplikace s použitím zadaného názvu prostředku (například index.android.bundle). Tato metoda má stejné chování řešení jako výše popsaný ekvivalent Objective-C.

  • overrideAppVersion(String appVersionOverride) – Nastaví verzi binárního rozhraní aplikace, která by jinak ve výchozím nastavení byla nastavena na verzi obchodu Play, která je určená jako versionName v build.gradle. To by se mělo volat jednou, než se vytvoří instance CodePush.