0

我正在尝试定义一个新的 android.tablet 皮肤。我正在使用运行 KitKat 的 Nexus 7 进行测试。

我这样做了:

  1. 添加了皮肤
  2. 更新getSkinName()功能
  3. 我可以在 LogCat 中看到getSkinName()被调用的函数

但是,有一个令人困惑的消息:

将使用“默认”皮肤,因为找不到名为 android.tablet 的皮肤。添加皮肤或更改 android/js/skinLoader.js 以返回现有皮肤。

我错过了什么吗?

04-01 17:03:32.969: D/CordovaNetworkManager(4481): 连接类型: wifi 04-01 17:03:32.969: D/CordovaActivity(4481): onMessage(networkconnection,wifi) 04-01 17:03:32.969 : D/CordovaLog(4481): file:///android_asset/www/default/js/skinLoader.js: 第 18 行: screen.width 800 04-01 17:03:32.969: I/chromium(4481): [INFO :CONSOLE(18)] "screen.width 800", 来源: file:///android_asset/www/default/js/skinLoader.js (18) 04-01 17:03:32.969: D/CordovaLog(4481): file:///android_asset/www/default/js/skinLoader.js:第 23 行:返回的 skinName 是 android.tablet 04-01 17:03:32.969: I/chromium(4481): [INFO:CONSOLE(23)] “返回的 skinName 是 android.tablet”,来源:file:///android_asset/www/default/js/skinLoader.js (23) 04-01 17:03:32.969:W/WLDroidGap(4481):将使用“默认”皮肤,因为找不到名为 android.tablet 的皮肤。添加皮肤或更改 android/js/skinLoader.js 以返回现有皮肤。... ... ... 04-01 17:03:34.779:D/CordovaLog(4481):file:///android_asset/www/default/worklight/cordova.js:第 1034 行:processMessage 失败:错误: ReferenceError:未定义 getSkinName

4

1 回答 1

1

看起来你是对的,Worklight Skins 无法加载 - 至少在应用程序的第一次加载时;如果你第二次加载它,它确实有效。


我已经为这个问题打开了一个缺陷。
如果您是 IBM 业务合作伙伴或客户,请打开 PMR,以便一旦修复,您将能够以 iFix 版本的形式收到它。


这是我所做的:

  1. 创建了一个新项目和应用程序
  2. 添加了安卓环境
  3. 在 Android 环境中添加了应用程序皮肤 android.skin
  4. main.css在 my-app\android.skin\css添加了一个body {background-color:red}
  5. getSkinName()在 my-app\android\js\skinLoader.js' 中更改为return "android.skin"
  6. 运行方式 > 在 Worklight 开发服务器上运行
  7. 运行方式 > Android 应用程序

第一次加载确实加载了“默认”皮肤而不是“android.skin”。我第二次加载应用程序(从设备,而不是重新安装应用程序),它确实加载了“android.skin”......

所以无论如何,有一个缺陷。但是您可以继续开发您的应用程序,尽管方式有点不方便......

于 2014-04-02T04:36:24.170 回答