IBM MobileFirst cordova jsonstore 插件在没有额外超时的情况下无法初始化
IBM MobileFirst cordova jsonstore plug-in not initializing without extra timeout
我正在使用 IBM MobileFirst Foundation 8.0、Ionic 2 和 typescript 为 iOS 和 Android 构建 Cordova 应用程序。
我已经安装了 cordova-plugin-mfp-jsonstore
和 cordova-plugin-mfp
但是当尝试使用下面的代码初始化 JSONStore 集合时它不起作用。我收到一条错误消息,指出 JSONStore 是 undefined
.
mfpJSONStorageConnector.initGlobalCollections()
如果我在 timeout
中添加相同的代码,如下所示,我会得到 WL.JSONStore
作为 [object Object]
并且 mfpJSONStorageConnector.initGlobalCollections()
工作正常。
setTimeout(function(){
}, 8000);
如果我删除 settimeout ,应用程序将中断并且 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
抱歉造成混淆
我注意到您正在使用 cordova-plugin-jsonstore
。这与 cordova-plugin-mfp-jsonstore
.
不同
cordova-plugin-jsonstore
是与 MobileFirst Foundation 8.0 不兼容的 JSONStore 的 opened-sourced 版本。您可以在此处阅读有关此不兼容的 Cordova plug-in 的信息:https://github.com/ibm-bluemix-mobile-services/jsonstore-cordova/
相反,您应该使用 MobileFirst Foundation 8.0 的官方 JSONStore plug-in:cordova-plugin-mfp-jsonstore
,如产品文档中所述,此处:https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/8.0/application-development/jsonstore/cordova/
尝试在 'mfpjsonjsloaded' 上添加侦听器。当 JSONStore 插件完成加载时会触发该事件。
renderer.listenGlobal('document', 'mfpjsonjsloaded', () => {
console.log('--> MFP JSONStore API init complete');
...
}
我正在使用 IBM MobileFirst Foundation 8.0、Ionic 2 和 typescript 为 iOS 和 Android 构建 Cordova 应用程序。
我已经安装了 cordova-plugin-mfp-jsonstore
和 cordova-plugin-mfp
但是当尝试使用下面的代码初始化 JSONStore 集合时它不起作用。我收到一条错误消息,指出 JSONStore 是 undefined
.
mfpJSONStorageConnector.initGlobalCollections()
如果我在 timeout
中添加相同的代码,如下所示,我会得到 WL.JSONStore
作为 [object Object]
并且 mfpJSONStorageConnector.initGlobalCollections()
工作正常。
setTimeout(function(){
}, 8000);
如果我删除 settimeout ,应用程序将中断并且 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
抱歉造成混淆
我注意到您正在使用 cordova-plugin-jsonstore
。这与 cordova-plugin-mfp-jsonstore
.
cordova-plugin-jsonstore
是与 MobileFirst Foundation 8.0 不兼容的 JSONStore 的 opened-sourced 版本。您可以在此处阅读有关此不兼容的 Cordova plug-in 的信息:https://github.com/ibm-bluemix-mobile-services/jsonstore-cordova/
相反,您应该使用 MobileFirst Foundation 8.0 的官方 JSONStore plug-in:cordova-plugin-mfp-jsonstore
,如产品文档中所述,此处:https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/8.0/application-development/jsonstore/cordova/
尝试在 'mfpjsonjsloaded' 上添加侦听器。当 JSONStore 插件完成加载时会触发该事件。
renderer.listenGlobal('document', 'mfpjsonjsloaded', () => {
console.log('--> MFP JSONStore API init complete');
...
}