IBM MobileFirst cordova jsonstore 插件在没有额外超时的情况下不会初始化



我正在使用IBM MobileFirst Foundation 8.0,Ionic 2和Typescript来构建iOS和Android的Cordova应用程序。

我已经安装了cordova-plugin-mfp-jsonstorecordova-plugin-mfp但是当尝试使用以下代码初始化 JSONStore 集合时,它不起作用。我收到一个错误,说 JSON 斯托尔undefined

mfpJSONStorageConnector.initGlobalCollections()

如果我在timeout中添加相同的代码,如下所示,我会得到WL.JSONStore [object Object]并且mfpJSONStorageConnector.initGlobalCollections()工作正常。

setTimeout(function(){ 
}, 8000);

如果我删除设置超时,应用程序将中断,mfpJSONStorageConnector.initGlobalCollections将无法正常工作

例如:

constructor(public platform: Platform, public alertCtrl: AlertController, public events: Events, 
    public renderer : Renderer, 
    public mfpJSONStorageConnector: MFPJSONStorageConnector) {
let self = this;
platform.ready().then(() => {
  StatusBar.styleDefault();  
});
self.renderer.listenGlobal('document', 'mfpjsloaded', () => {

          setTimeout(function(){ 
          mfpJSONStorageConnector.initGlobalCollections().then(function(status) {
              authenticationService.getLastLoggedInUser().then((lastLoggedInUser) => {
                   Splashscreen.hide();
              }).catch((ex) => {
                  //Error
              });  
          });  
    }, 8000);
    });

更新我使用的是cordova-plugin-mfp-jsonstore而不是cordova-plugin-jsonstore很抱歉造成混乱

尝试在"mfpjsonjsloaded"上添加一个侦听器。 当 JSONStore 插件完成加载时,将触发该事件。

renderer.listenGlobal('document', 'mfpjsonjsloaded', () => {
  console.log('--> MFP JSONStore API init complete');
  ...
}

我注意到您正在使用cordova-plugin-jsonstore.这与cordova-plugin-mfp-jsonstore不同。

cordova-plugin-jsonstore是 JSONStore 的开源版本,与 MobileFirst Foundation 8.0 不兼容。您可以在此处阅读有关此不兼容的Cordova插件的信息:https://github.com/ibm-bluemix-mobile-services/jsonstore-cordova/

相反,您应该使用 MobileFirst Foundation 8.0 的官方 JSONStore 插件:cordova-plugin-mfp-jsonstore ,如产品文档中所述,此处:https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/8.0/application-development/jsonstore/cordova/

相关内容

  • 没有找到相关文章

最新更新