WL 5.0.6.1 Android - Atualização direta mantém os recursos nativos / Cordova ativos / na memória (por exemplo, BusyIndicator), mas a referência é perdida
Estamos com um problema quando temos a seguinte sequência:
Inicialização de aplicativosRecursos da Web começamMostrar um indicador ocupado (1)Conecte-se ao Servidor WLA atualização direta é acionadaReinicialização de Recursos da WebMostrar um indicador ocupado (2)Conecte-se ao Servidor WLSucessoCarregue e mude para a página de boas-vindasEsconder Indicador Ocupado (2)Isso tem o efeito de que, nos recursos da web de atualização direta, estamos (é claro) perdendo / perdendo a referência ao indicador de ocupado (1) e não podemos ocultar esse indicador depois que a atualização direta foi acionada. Então, temos dois indicadores (1) (2) abertos e apenas um (2) está fechado, o antigo (1) está para sempre.
Uma solução seria obter um evento antes que a atualização direta fosse acionada / executada ... lá poderíamos ocultar nosso indicador (1). Isso então se tornaria bastante semelhante a essa pergunta:IBM Worklight - Como posso executar o código JavaScript antes de atualizar o aplicativo?
Uma abordagem mais geral seria acionar uma reinicialização "mais profunda" do aplicativo ... o que significa também reiniciar o shell nativo e todos os recursos do cordova. Então todos os recursos nativos como indicador ocupado e outras coisas devem ser removidos e redefinidos, certo?
Existe alguma maneira de conseguir um reinício tão "profundo" do aplicativo após a atualização direta? Este problema é conhecido?
ATUALIZAÇÃO 5 de setembro
Vimos que os eventos a seguir são acionados antes que o DirectUpdate reinicie os recursos da Web:
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);
... mas infelizmente esconder o nosso WL.BusyIndicator "busytest" não funciona mais nesses eventos. Alguém tem alguma idéia?
Mas talvez algum outro código de limpeza possa ser colocado lá no caso de um DirectUpdate?