【问题标题】:Worklight mobile app doesn't load dojo mobile widgets on android 4.x devicesWorklight 移动应用程序不会在 android 4.x 设备上加载 dojo 移动小部件
【发布时间】: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


【解决方案1】:

根据 cmets 中的讨论:

这可能是由于某些 i18n 问题,具体取决于 webview 返回的语言环境,可能会因设备而异,但也会因 Android 版本而异。

您应该检查与您的应用程序一起部署的 webview 语言环境对应的 nls 包。例如,如果语言环境是 en-us,您应该将 dojo/nls/core-web-layer_en-us.js 复制到您的应用中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多