IBM Worklight - не удается выполнить прямое обновление после изменения строки "Настройки Worklight" по умолчанию в меню параметров Android

После добавления следующего объекта в messages.js (находится в myProject/apps/myApp/common):

WL.ClientMessages = {
  wlSettings : "myApp settings"
};

Несмотря на то, что он успешно изменился с "Настройки рабочего освещения" на "Настройки myApp" в Android OptionsMenu Android, когда я смотрю в Logcat, он показывает следующую ошибку:

Uncaught ReferenceError: WL не определен в файле:///data/data/com.test/files/www/default/js/messages.js:10

Кроме того, если я запускаю прямое обновление путем изменения веб-ресурса, происходит сбой со следующей ошибкой:

тег: тест (название моего приложения)

[http://192.168.1.5:10080/test/apps/services/api/test/android/composite] исключение. TypeError: Невозможно вызвать метод replace вместо undefined

тег: CordovaLog

Uncaught TypeError: Невозможно вызвать метод replace вместо undefined

тег: веб-консоль

Uncaught TypeError: Невозможно вызвать метод replace вместо undefined в файле:///data/data/com.test/files/www/default/wlclient/js/worklight.js:1763

1 ответ

Решение

Это из-за способа, которым я ранее объяснил свой ответ на этот вопрос: IBM Worklight - Как изменить стандартную строку "Настройки Worklight"?

Я исправил это.

Это происходит сейчас, потому что messages.js не входит в сферу WL Пространство имен.
Таким образом, он переопределит весь объект ClientMessages, оставив вам только одно свойство - wlSettings. Это приведет к сбою различных компонентов, например, прямая ошибка обновления, вызванная тем, что платформа WL не может получить необходимую строку сообщения.

Переместите объект из messages.js в yourApp.js выше wlCommonInit()и обновите его так:

/* myApp.js 
...
...
/*

WL.ClientMessages.wlSettings = "myApp Settings";

function wlCommonInit() {
    ...
    ...
}
Другие вопросы по тегам