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() {
...
...
}