/ / WL 5.0.6.1 Android - Priama aktualizácia udržiava pôvodné / Cordova zdroje aktívne / v pamäti (napr. BusyIndicator), ale referencia je stratená - Cordova, ibm-mobilefirst

WL 5.0.6.1 Android - priama aktualizácia zachováva pôvodné / Cordova zdroje aktívne / v pamäti (napr. BusyIndicator), ale referencia sa stratila - cordova, ibm-mobilefirst

Máme problém, keď máme nasledujúcu postupnosť:

  • Spúšťanie aplikácií
  • Spustenie webových zdrojov
  • Zobraziť indikátor obsadenosti (1)
  • Pripojte sa k serveru WL
  • Spustí sa priama aktualizácia
  • Webové zdroje sa reštartujú
  • Zobraziť indikátor obsadenosti (2)
  • Pripojte sa k serveru WL
  • Úspech
  • Načítajte a prejdite na úvodnú stránku
  • Skryť indikátor obsadenosti (2)

To má za následok, že v priamom aktualizovaníwebové zdroje strácame / chýbajú odkazy na indikátor obsadenosti (1) a po spustení priamej aktualizácie nemôžeme tento ukazovateľ skryť. Takže máme dva indikátory (1) (2) otvorené a iba jeden (2) je zatvorený, starý (1) je navždy zapnutý.

Jedným z riešení by bolo získať udalosť pred spustením / vykonaním priamej aktualizácie ... tam by sme mohli skryť náš indikátor (1). To by sa potom veľmi podobalo tejto otázke: IBM Worklight - Ako môžem spustiť kód JavaScript pred aktualizáciou aplikácie?

Všeobecnejším prístupom by bolo spustenie a"hlbší" reštart aplikácie ... čo znamená tiež reštartovať natívny shell a všetky Cordova zdroje. Potom by sa mali odstrániť všetky pôvodné zdroje, ako napríklad indikátor obsadenia a ďalšie veci, a resetovať, správne?

Existuje nejaký spôsob, ako dosiahnuť taký „hlboký“ reštart aplikácie po priamej aktualizácii? Je tento problém známy?

AKTUALIZÁCIA 5. septembra

Zistili sme, že nasledujúce udalosti sa spustia niekedy predtým, ako DirectUpdate reštartuje webové zdroje:

window.addEventListener("beforeunload",
function() {
WL.Logger.debug("busy test - unload2");
app.busytest.hide();
}
, false);

window.addEventListener("unload",
function() {
WL.Logger.debug("busy test - unload3");
app.busytest.hide();
}
, false);

... ale nanešťastie skryť náš WL.BusyIndicator „busytest“ v týchto udalostiach už nefunguje. Má niekto nejaké nápady?

Ale možno tam bude nejaký iný čistiaci kód v prípade DirectUpdate?

odpovede:

1 pre odpoveď č. 1

Indikátor obsadenosti je singleton. Ak vytvoríte niekoľko indikátorov obsadenosti, ukážte ich a potom ich skryte - všetko sa skryje.