IBM Worklight 5.0.x: Uncaught TypeError: Невозможно вызвать метод 'init' из неопределенного

Я следую этому руководству по WebSphere Commerce для витрин магазина Worklight, чтобы использовать гибридные приложения с использованием IBM Worklight 5.0.5.

Приложение запускается успешно, однако после настройки сведений о соединении для фронта магазина в приложении и их сохранения - витрина магазина, являющаяся другим приложением Worklight Hybrid, расположенным на сервере WebSphere Commerce, инициализируется неправильно.

Вместо правильной загрузки я получаю следующее сообщение об ошибке:

Uncaught TypeError: Cannot call method 'init' of undefined at 192.168.16.96/wcsstore/Aurora/mobile20/WorklightHybrid/android/js/initOptionsApp‌​‌​‌​.js:64

HTML-код файла:

<body id="content" class="bg_splash" style="display: none;">
    <!-- application UI goes here -->
    <div class="wrapper">
        <div id="splashscreen" class="splash_logo_container splash_logo_position splash_logo"></div>
        <div id="pagePort" class="hidden"></div>
    </div>
    <script src="js/version.js"></script>
    <script src="js/messages.js"></script>
    <script src="js/messages_en_US.js"></script>
    <script src="js/messages_fr_FR.js"></script>
    <script src="js/messages_de_DE.js"></script>
    <script src="js/messages_it_IT.js"></script>
    <script src="js/messages_es_ES.js"></script>
    <script src="js/messages_pt_BR.js"></script>
    <script src="js/messages_zh_CN.js"></script>
    <script src="js/messages_zh_TW.js"></script>
    <script src="js/messages_ko_KR.js"></script>
    <script src="js/messages_ja_JP.js"></script>
    <script src="js/messages_ko_KR.js"></script>
    <script src="js/messages_ru_RU.js"></script>
    <script src="js/messages_ro_RO.js"></script>
    <script src="js/messages_pl_PL.js"></script>
    <script src="js/WCLocalStorage.js"></script>
    <script src="js/WCHybrid.js"></script>
    <script src="js/initOptions.js"></script>
</body>

initOptions.js

//Worklight Client initialization parameter array
var wlInitOptions = {
//Application should not attempt to connect to Worklight Server on application start up
connectOnStartup : false,
//Should application produce logs
enableLogger : true,
//Should direct updates prompt the user or occur silently
updateSilently: false
};

var initOptionsApp = (function() {

return {
    /**
     * Called when Cordova runtime has initialized
     */
    onDeviceReady: function() {
        var METHODNAME = "initOptionsApp.onDeviceReady";
        if (wlInitOptions.enableLogger) {
            WL.Logger.debug(METHODNAME, "ENTRY");
        }          
        //bind the hardware back button event listener
        document.addEventListener("backbutton", WCHybridApp.onBackKeyDown, false);
        if (wlInitOptions.enableLogger) {
            WL.Logger.debug(METHODNAME, "EXIT");
        }
    }
};

})();

/**
* Bind the Worklight Client initialization call to the page load event
*/
if (window.addEventListener) {
window.addEventListener('load', function() { WL.Client.init(wlInitOptions); }, false);
window.addEventListener('unload', function() { WCHybridApp.updateHistory(); }, false);
} else if (window.attachEvent) {
window.attachEvent('onload',  function() { WL.Client.init(wlInitOptions); });
}

/**
 * Bind events to the Cordova deviceready event
 */
if (document.addEventListener) {
document.addEventListener("deviceready", initOptionsApp.onDeviceReady, false);
}

Изменить: ниже было исправлено после обновления до Worklight 5.0.6.1

Когда я загружаю свое приложение на эмуляторе, оно выдает неожиданные три разных диалоговых окна, как видно на изображениях ниже.

Больше примеров здесь:

1 ответ

Решение

Получение этих диалогов, связанных с Cordova, обычно означает, что что-то не так с версией Cordova, которую вы используете в своем приложении.

Я настоятельно рекомендую начать все сначала с Eclipse Java EE 4.2.2 (Juno SR2) и установить Worklight Developer Edition (v5.0.6.1 с Eclipse Marketplace). Это, вероятно, решит это.

Изменить: Из отредактированного вопроса, он имеет.

Проблема переобучения с initOptions в настоящее время напоминает эту: Uncaught ReferenceError: wlInitOptions не определен

Другие вопросы по тегам