0

我正在开发一个移动应用程序,将 Worklight(混合应用程序)与 Dojo Mobile 结合使用。它有 3 个视图,每个视图都有一个显示一些硬编码数据的列表。

当我在移动浏览器模拟器中运行它时,它可以正常工作(“作为公共资源预览”和“Android”视图)。加载了所有 Dojo 小部件。

当我在物理 android 手机上运行它时,它似乎只适用于 android 版本 2.xx,但它不适用于 android 版本 4.xx 它不加载 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 构建应用程序。总是得到相同的结果。

我正在与:

  • 工作灯版本:6.0.0.20130926-1933
  • 用于 Worklight 的 Dojo Toolkit SDK 1.8.1
  • Android 开发工具包版本:22.3.0.v201310242005-887826

最近我用最新版本升级了 Worklight:

  • 工作灯版本:6.1.0.20131126-0630
  • 用于 Worklight 的 Dojo Toolkit SDK 1.9.1
  • Android 开发工具包版本:22.3.0.v201310242005-887826

任何帮助将不胜感激。

谢谢!!

4

1 回答 1

0

根据评论中的讨论:

这可能是由于一些 i18n 问题,具体取决于 webview 返回的区域设置,这可能会根据设备而变化,但也会因 Android 版本而异。

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

于 2014-01-08T12:51:25.193 回答