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:
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).
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 modulugetCurrentPackage
CodePush je ve prospěchgetUpdateMetadata
*.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):
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);
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);
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);
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_START
je .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_RESTART
je .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.IMMEDIATE
je .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
neboInstallMode.ON_NEXT_SUSPEND
a 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é.0
Ve 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
null
je , která zakáže dialogové okno. Nastavením na libovolnoutrue
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
false
je .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í hodnota24
je .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í hodnota1
je .
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:
Od posledního
disallowRestart
zavolání nebyly nainstalovány žádné aktualizace CodePush, takže není potřeba restartovat.V současné době probíhá čekající aktualizace CodePush, ale byla nainstalována prostřednictvím
InstallMode.ON_NEXT_RESTART
programu, takže programové restartování není potřeba.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.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í Promise
chybu, která se přeloží na jednu ze dvou možných hodnot:
null
pokud není k dispozici aktualizace. Může k nim dojít v následujících situacích:- Nakonfigurované nasazení neobsahuje žádné vydané verze, takže se nic neaktualizuje.
- 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ší).
- Aktuálně spuštěná aplikace už má nejnovější verzi z nakonfigurovaného nasazení, takže ji už nepotřebujete znovu.
- Nejnovější verze v rámci nakonfigurovaného nasazení je aktuálně označená jako zakázaná, takže se nedá stáhnout.
- 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.
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ářů:
Aktualizace CodePush se instaluje pomocí
InstallMode.IMMEDIATE
Aktualizace CodePush se instaluje pomocí
InstallMode.ON_NEXT_RESUME
a aplikace se obnoví z pozadí (volitelně seminimumBackgroundDuration
omezuje vlastností).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ředstavitdisallowRestart
, ž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í Promise
chybu, která se přeloží na jednu ze dvou možných hodnot:
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:- Koncový uživatel nainstaloval binární soubor aplikace a ještě si nainstaloval aktualizaci CodePush.
- 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.
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í Promise
chybu, která se přeloží na jednu ze dvou možných hodnot:
null
pokud aktualizace se zadaným stavem aktuálně neexistuje. K tomu dochází v následujících scénářích: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.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.
Parametr
updateState
je nastavený naUpdateState.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í.Parametr
updateState
je nastavený naUpdateState.PENDING
, ale aplikace nemá aktuálně čekající aktualizace.
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:
Aplikace určuje hodnotu
ON_NEXT_RESTART
režimu instalace neboON_NEXT_RESUME
při volánísync
metod neboLocalPackage.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.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:
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.
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:
deploymentKey (String) – odkaz na
CodePushOptions
.installMode (codePush.InstallMode) – viz
CodePushOptions
.mandatoryInstallMode (codePush.InstallMode) – viz
CodePushOptions
.minimumBackgroundDuration (Číslo) – odkaz na
CodePushOptions
.updateDialog (UpdateDialogOptions) – viz
CodePushOptions
.rollbackRetryOptions (RollbackRetryOptions) – viz
CodePushOptions
.
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 parametruSyncOptions
InstallMode
.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éhorelease
řá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átecheckForUpdate
. (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
true
to 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 naInstallMode
referenční informace k výčtu popis dostupných možností a jejich provedení.installMode
Pokud je parametr nastavený naInstallMode.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 RemotePackage
rozhraní 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 objektemDownloadProgress
({ totalBytes: Number, receivedBytes: Number }
), který hlásí průběh stahování, dokud se neskončí. Vrátí příslib, který se vyřeší sLocalPackage
.
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 iLocalPackage.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 parametruSyncOptions
InstallMode
. - 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 RCTRootView
metodě '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:
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í :)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.
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.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 jemain.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 soubormain
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
nebosync
.
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ázvemCodePushPublicKey
. 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ázvemCodePushServerUrl
. 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řithis
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, abyBuildConfig.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í: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
.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 vserverUrl
.
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.