javascript: manejo de la actualización directa con navegación a la página nativa en IBM Mobile primero


Estoy desarrollando un proyecto, en el que necesito llamar a una página nativa en wlCommonInit()

function wlCommonInit(){
    WL.NativePage.show(nativePageClassName, backFromNativePage, params);
}

Quiero que mi proyecto reciba la actualización directa con modo persesión. Entonces, para conectarme con Mobile First Server, llamé a WL.Client.connect()

function wlCommonInit(){
    busyind = new WL.BusyIndicator;
    busyind.show();
    WL.Client.connect({onSuccess: connectSuccess, onFailure: connectFail});
    WL.NativePage.show(nativePageClassName, backFromNativePage, params);
}

Además, quiero manejar la actualización directa, así que agregué el código requerido.

wl_directUpdateChallengeHandler.handleDirectUpdate = function(directUpdateData,
  directUpdateContext) {
  // custom WL.SimpleDialog for Direct Update
  var customDialogTitle = 'Custom Title Text';
  var customDialogMessage = 'Custom Message Text';
  var customButtonText1 = 'Update Application';
  var customButtonText2 = 'Not Now';
  WL.SimpleDialog.show(customDialogTitle, customDialogMessage, [{
      text: customButtonText1,
      handler: function() {
          directUpdateContext.start(directUpdateCustomListener);
      }
  }, {
      text: customButtonText2,
      handler: function() {
          wl_directUpdateChallengeHandler.submitFailure();
      }
  }]);
};

var directUpdateCustomListener = {
    onStart: function(totalSize) {},
    onProgress: function(status, totalSize, completeSize) {},
    onFinish: function(status) {
      WL.SimpleDialog.show('New Update Available', 'Press reload button to update to new version', [{
          text: WL.ClientMessages.reload,
          handler: WL.Client.reloadApp
      }]);
  }
};

Aquí el problema es que la aplicación está navegando al pa nativoedad antes de que pueda ir a la función de controlador de actualización directa cuando la la actualización está disponible.

¿Hay alguna forma de resolverlo?



------------Respuesta------------

Creo que lo que debería hacer si usa la API [WL.Client.checkForDirectUpdate.

De esta manera, tendrá la capacidad de verificar primero si hay una actualización directa; manéjelo si hay una actualización y luego ejecute la función para abrir la página nativa.

El código que se está ejecutando esasíncrono, por lo que no puede controlarlo si no sigue la sugerencia anterior.

Etiquetas: ibm-mobilefirst javascript ios android

Artículos relacionados:

javascript - Valor vacío de la etiqueta de entrada JQUERY

css: la animación no funciona en Chrome