【发布时间】:2014-01-01 17:38:17
【问题描述】:
我正在开发一个移动应用程序,将 Worklight(混合应用程序)与 Dojo Mobile 结合使用。它有 3 个视图,每个视图都有一个显示一些硬编码数据的列表。
当我在移动浏览器模拟器中运行它时,它可以正常工作(“预览为公共资源”和“Android”视图)。加载了所有 Dojo 小部件。
当我在物理 android 手机上运行它时,它似乎只适用于 android 版本 2.x.x,但不适用于 android 版本 4.x.x。它不加载 dojo 移动小部件。它在一个简单的 html 页面中显示了三个视图。
日志中出现的消息如下:
11-29 19:49:44.081: D/DemoApp(6088): wlclient init started
11-29 19:49:44.091: D/DemoApp(6088): Read cookies: null
11-29 19:49:44.091: D/DemoApp(6088): CookieMgr read cookies: {}
11-29 19:49:44.231: D/DemoApp(6088): before: app init onSuccess
11-29 19:49:44.252: D/DemoApp(6088): after: app init onSuccess
11-29 19:49:44.252: D/DemoApp(6088): added onPause event handler
11-29 19:49:44.252: D/DemoApp(6088): wlclient init success
11-29 19:49:45.703: D/chromium(6088): Unknown chromium error: -6
11-29 19:49:45.703: D/chromium(6088): Unknown chromium error: -6
11-29 19:49:45.973: D/CordovaLog(6088): Error: scriptError
11-29 19:49:45.973: E/Web Console(6088): Error: scriptError at file:///data/data/com.DemoApp/files/www/default/dojo/dojo.js:21
11-29 19:49:45.983: D/CordovaLog(6088): Error: scriptError
11-29 19:49:45.983: E/Web Console(6088): Error: scriptError at file:///data/data/com.DemoApp/files/www/default/dojo/dojo.js:21
11-29 19:50:07.554: D/CordovaWebView(6088): The current URL is: file:///data/data/com.DemoApp/files/www/default/DemoApp.html
11-29 19:50:07.554: D/CordovaWebView(6088): The URL at item 0 is:file:///data/data/com.DemoApp/files/www/default/DemoApp.html
在谷歌上寻找“dojo.js:21”错误我找到了一些可能的解决方案:
- 确保 www 文件夹下有所有 dojo 所需的文件...
- 在项目构建之前取消选中 Dojo 库请求控制台中的“提供库资源”选项...
- 将 www/dojo/nls/ 中的 core-web-layer_ROOT.js 和 mobile-ui-layer_ROOT.js 替换为 toolkit/dojo/dojo/nls 中的那些
- 手动触发 dojo 解析器...
但是这些解决方案都没有奏效。
我尝试使用 android api 8、15 和 18 构建应用程序。始终得到相同的结果。
我正在与:
- Worklight 版本:6.0.0.20130926-1933
- Dojo Toolkit SDK 1.8.1 for Worklight
- Android 开发工具包版本:22.3.0.v201310242005-887826
最近我用最新版本升级了 Worklight:
- Worklight 版本:6.1.0.20131126-0630
- Dojo Toolkit SDK 1.9.1 for Worklight
- Android 开发工具包版本:22.3.0.v201310242005-887826
任何帮助将不胜感激。
谢谢!!
【问题讨论】:
-
这可能是由于一些 i18n 问题。 webview 返回的语言环境是什么?然后,检查是否有与 locale 对应的 nls 包?例如,如果语言环境是“en-us”,您应该在您的应用中复制“dojo/nls/core-web-layer_en-us.js”。
-
@PatrickRuzand 你是个天才!!这就是问题所在。我的应用程序中已经有了 core-web-layer_en-us.js。有问题的设备具有 es-ar 区域设置,因此我在 data-dojo-config 属性中的 dojo 加载中设置为默认区域设置 en-us。非常感谢!!
标签: android mobile dojo ibm-mobilefirst dojox.mobile