1

我在 Worklight 6.0 中将 WL.BusyIndi​​cator 与适配器调用一起使用:

this.busyIndicator.show();

WL.Client.invokeProcedure(invocationData, {
    onSuccess : function(response) {

        this.busyIndicator.hide();

        // do good stuff

}.bind(this),
    onFailure : function(err) {

        this.busyIndicator.hide();
        WL.SimpleDialog.show("Adapter Error", JSON.stringify(err), [{text: "OK"}]);

    }.bind(this)
});

这通常有效,但在 Android 上,当适配器调用失败(worklight 服务器已停止)时,我有时会看到“适配器错误”对话框,当我关闭它时,busyindicator 仍然存在。在这一点上,我的应用程序已经死了,因为忙指示符运行时我无能为力。(后退按钮不会清除它)

除了关于适配器调用失败的错误消息之外,logcat 中没有任何内容。

我在 Android 4.1.2 和 4.2.2 的模拟器以及 4.1.2 手机上看到了这一点。我无法在 Android 2.2 模拟器中重现它,但运行速度要慢得多,它可能只是我无法到达那里的时间窗口。我没有在 iOS 或 Chrome 上看到这个问题。

有没有其他人看过这个?

4

3 回答 3

1

我们在 5.0x 版本中也遇到过类似的问题。我们最终创建了一个忙碌指标管理器并实施了一个最终会关闭指标的超时。然后,我们通过该经理引导所有呼叫。

于 2013-06-25T19:43:59.230 回答
0

我这里缺少一些东西...

你为什么使用 BusyIndi​​cator 的形式this.busyIndicator.show()
你有没有初始化你自己的busyIndi​​cator?尝试创建自己的一个,然后以例如:mybusy.show()mybusy.hide().

于 2013-06-26T05:14:31.370 回答
0

我在 6.0 和 6.1 中看到过这个问题。我确实在 wlCommonInit 中进行了初始化。由于我们使用的是 jquery,因此我决定切换到 jquery 加载器,并且似乎可以正常工作,因为我期望 busyIndi​​cator 可以正常工作。唯一的问题是您确实会丢失本机加载,但这是我必须通过的。

$.mobile.loading( "show", {text: "foo",textVisible: true,theme: "z",html: ""});
$.mobile.loading( "hide");
于 2014-03-29T23:48:58.283 回答