gpt4 book ai didi

cordova - WL 5.0.6.1 Android - 直接更新使 Native/Cordova 资源保持事件状态/在内存中(例如 BusyIndi​​cator)但引用丢失

转载 作者:行者123 更新时间:2023-12-02 03:43:35 24 4
gpt4 key购买 nike

当我们有以下序列时,我们遇到了问题:

  • 应用启动
  • 网络资源开始
  • 显示忙碌指示器 (1)
  • 连接到 WL 服务器
  • 触发直接更新
  • Web 资源重启
  • 显示忙碌指示器 (2)
  • 连接到 WL 服务器
  • 成功
  • 加载并切换到欢迎页面
  • 隐藏忙碌指示灯 (2)

这会导致在直接更新的 Web 资源中我们(当然)丢失/缺少对忙碌指示器 (1) 的引用,并且在直接更新被触发后我们无法隐藏该指示器。那么,我们有两个指标 (1) (2) 打开,只有一个 (2) 关闭,旧的 (1) 永远打开。

一个解决方案是在触发/执行直接更新之前获取一个事件……我们可以在那里隐藏我们的指示器 (1)。这将变得非常类似于这个问题:IBM Worklight - How can I execute JavaScript code before updating the application?

更通用的方法是触发应用程序的“更深层次”重启……这意味着还重启 native shell 和所有 cordova 资源。那么应该删除并重置所有 native 资源,如繁忙指示器和其他东西,对吗?

有没有什么办法可以在直接更新后实现应用程序的这种“深度”重启?这个问题已知吗?

9 月 5 日更新

我们看到在 DirectUpdate 重新启动网络资源之前的某个时间触发了以下事件:

window.addEventListener("beforeunload",
function() {
WL.Logger.debug("busy test - unload2");
app.busytest.hide();
}
, false);

window.addEventListener("unload",
function() {
WL.Logger.debug("busy test - unload3");
app.busytest.hide();
}
, false);

...但不幸的是,隐藏我们的 WL.BusyIndi​​cator“busytest”在这些事件中不再起作用。有人有什么想法吗?

但是在 DirectUpdate 的情况下,也许可以将一些其他的清理代码放在那里?

最佳答案

Busy 指示器是一个单例。如果您创建多个繁忙指示器,显示它们然后隐藏它们 - 所有这些都将被隐藏。

关于cordova - WL 5.0.6.1 Android - 直接更新使 Native/Cordova 资源保持事件状态/在内存中(例如 BusyIndi​​cator)但引用丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18623000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com