我有角應用並使用Mobile-first 8.如何檢查MobileFirst是否已加載?我需要先等待科爾多瓦被裝上嗎?檢查mobilefirst是否已加載
在V7.1中,我有一個返回cordova設備對象的MobileFirst包裝。然而,因爲它現在是一個插件,我不知道如何檢查...
我沒有WLCommonInit函數。我正在使用「angular.run」函數,該函數在加載應用程序之前被注入並執行。在這裏我的代碼在7.1
(function() {
'use strict';
angular
.module('local_worklight', [])
.run(WorklightRun)
WorklightRun.$inject = ['$rootScope', '$q'];
function WorklightRun($rootScope, $q) {
// Worklight statuss
var initDeferred = $q.defer();
$rootScope.worklightInitPromise = initDeferred.promise;
$rootScope.worklightLoaded = false;
var connectionDeferred = $q.defer();
$rootScope.worklightConnectionPromise = connectionDeferred.promise;
$rootScope.worklightConnected = false;
// Listen for load/onload and start worklight init
if (window.addEventListener) {
window.addEventListener('load', loadHandler, false);
} else if (window.attachEvent) {
window.attachEvent('onload', loadHandler);
}
// Worklight connect options
var wlConnectOptions = {
timeout: 10000,
onFailure: connectionFailure,
onSuccess: function() {
console.log('MFP: Connected');
$rootScope.worklightConnected = true;
connectionDeferred.resolve();
}
};
// Worklight init options
var wlInitOptions = {
timeout: 10000,
onConnectionFailure: initFailure,
onFailure: initFailure,
onSuccess: function() {
console.log('MFP: Loaded');
initDeferred.resolve();
$rootScope.worklightLoaded = true;
if (window.addEventListener) {
window.addEventListener(WL.Events.WORKLIGHT_IS_CONNECTED, wlConnectedHandler, true);
window.addEventListener(WL.Events.WORKLIGHT_IS_DISCONNECTED, wlDisconnectedHandler, true);
} else if (window.attachEvent) {
window.attachEvent(WL.Events.WORKLIGHT_IS_CONNECTED, wlConnectedHandler);
window.attachEvent(WL.Events.WORKLIGHT_IS_DISCONNECTED, wlDisconnectedHandler);
}
console.log('MFP: About to connect - ' + JSON.stringify(wlConnectOptions, null, 2));
WL.Client.connect(wlConnectOptions);
}
};
var worklightLoadEvent = null;
worklightLoadEvent = document.createEvent('CustomEvent');
function loadHandler() {
try {
console.log('MFP: Load event detected, about to init - ' + JSON.stringify(wlInitOptions, null, 2));
WL.Client.init(wlInitOptions);
} catch (err) {
console.error('MFP: "WL" init error - ' + err);
initFailure(err);
worklightLoadEvent.initCustomEvent('worklightLoadFailure', true, false, {});
window.dispatchEvent(worklightLoadEvent);
}
}
function wlConnectedHandler() {
$rootScope.worklightConnected = true;
WL.App.hideSplashScreen();
}
function wlDisconnectedHandler() {
$rootScope.worklightFailureAcknowledged = true;
$rootScope.worklightConnected = false;
WL.App.hideSplashScreen();
}
function connectionFailure(err) {
console.log('MFP: No Connection - ' + JSON.stringify(err, null, 2));
connectionDeferred.reject(err);
}
function initFailure (err) {
console.log('MFP: init failed - ' + err);
initDeferred.reject(err);
connectionFailure(err);
}
}
})();
我看着一個示例角度的應用程序與Mobilefirst,但它使用'angular.bootstrap'。不過,我需要將我的應用綁定到ng- *。所以,我不能用它
感謝您的幫助..
我的問題是我如何從angular.run方法中使用wlCommonInit ,,,我不知道它怎麼會打電話,,另外,我是否已經先載入科爾多瓦。基本上我想檢查的是Mobile first和cordova是可用的..在7.1的代碼中,angular.run函數調用WL.Client.init和WL.Client.connect ... – user2570135
您不應該調用connect at所有。我建議你首先閱讀v80中的所有更改,然後再着手對應用程序進行更改...檢查文檔 –