【问题标题】:IBM Worklight 6.1 - Direct Update fails when returning to the foregroundIBM Worklight 6.1 - 返回前台时直接更新失败
【发布时间】:2014-01-29 13:31:26
【问题描述】:

工作灯 6.1.0
iPhone 5s 上的 iOS 7

我们有一个混合应用程序,它依赖 Worklight 服务器进行直接更新。当用户最小化然后重新打开应用程序时会出现此问题,用户能够看到更新对话框,但是由于错误的 WL-instance id 而导致更新失败。

这里是初始化选项:

var wlInitOptions = {
  connectOnStartup: true,
  onConnectionFailure: function() {
    WL.Logger.error("Failed to connect: " + arguments);
}


WLJSX.bind(window, 'load', function() {
  WL.Client.init(wlInitOptions);
}

这是我做的步骤:

1) 打开 IOS 应用程序,它会带我到应用程序的第一个索引页,比如 Page1 2) 按下一个按钮,将我带到另一个页面,比如使用 GluJs 的 page2

glu.viewport('MyApp.page2');

3) 最小化应用程序。

4) 修改 WebResource,然后将修改后的 Iphone 应用部署到 Worklight 服务器。

5) 重新打开最小化的应用,提示用户直接更新。

6) 然后更新将失败,并且在 Worklight 控制台中有以下日志:

[错误] FWLSE0203E: 从客户端接收到错误的实例 ID。服务器 实例 ID:'3f9eveddc7br5mq3ll0nq89miu',客户端实例 编号:'ut5m5f01i3bkq5l78m54uq137o'。 [项目主干]

【问题讨论】:

  • 请编辑问题并提供完整详细的复制步骤。
  • 除了在 initOptions.js 中将 connectOnStartup 设置为“true”之外,还可以尝试使用空白的新应用程序而不进行任何修改
  • 谢谢。会仔细看看...
  • 这种情况发生在开发环境还是生产环境?
  • 您好,是的,这发生在开发环境中。

标签: ios ibm-mobilefirst


【解决方案1】:
  1. GluJs 和 step 1 的存在都与 Direct Update 的过程有关,这在两种情况下发生:在应用程序启动时,在返回到前台时。应用程序中的任何“页面移动”都无关紧要。

  2. 您没有提到这是否发生在您的开发环境(Eclipse 中的 Worklight Studio 和内置的 Worklight Development Server)或生产环境(集群、非集群、负载平衡器与否等)。 .).

我在 Worklight Studio 6.1.0 中执行了以下操作,没有出现任何错误:

  1. 创建了一个新项目和应用程序
  2. 添加了 iPhone 环境
  3. initOptions.js 中,将connectOnStartupfalse 更改为true
  4. 运行方式 > Xcode 项目
    在 iOS 7.0 Simulator 和 iOS 7.1 beta 4 设备 (iPhone 5s) 上测试了该应用
  5. 启动应用程序
  6. 将应用程序移至后台(单击主页按钮)
  7. 在 Eclipse 中,更改了 HTML 文件
  8. Run As > Run on Worklight Development Server
  9. 将应用程序重新置于前台
  10. 检测到并处理直接更新,应用程序重新初始化并显示更新的 HTML 文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多