【问题标题】:IBM Worklight 6.1 wlCommonInit() behaviourIBM Worklight 6.1 wlCommonInit() 行为
【发布时间】:2014-05-19 09:07:25
【问题描述】:

我想知道wlCommonInit()函数的具体行为是什么。

我已经将我的初始化代码移到了这个函数中,但是在连接到服务器失败的情况下,它似乎没有被调用。

  • 当 Worklight 服务器不可访问时是否调用 wlCommonInit()
  • 如果我想使用直接更新,我想在初始化时调用WL.Client.updateUserInfo(),并且我希望应用程序也可以在离线模式下工作,这是否意味着我必须在wlInitOptions 中实现onConnectionFailure
  • 如果我在wlInitOptions 中实现onConnectionFailure,是否可以显示默认弹出窗口,通知连接失败并提供详细信息?

【问题讨论】:

    标签: initialization ibm-mobilefirst


    【解决方案1】:

    这实际上取决于您在“初始化代码”IMO 中编写的逻辑。这个问题有点神秘……

    1. 一旦 Worklight 框架完成初始化,就会调用 wlCommonInit 函数。如果将connectOnStartup设置为true,只有连接服务器成功才会调用。

    2. 直接更新与您在应用程序中实现的任何特定 API 无关。如果您更改项目中的任何 Web 资源(HTML、CSS、JavaScript、图像...),这将触发应用程序中的直接更新。

      在 2 种情况下检查直接更新:

      • 在应用程序启动时,以及
      • 返回前台时(如果应用在后台)


      在应用程序连接到 Worklight Server 时执行直接更新检查。如果您之前没有使用connectOnStartup:trueWL.Client.connect 或调用适配器过程(所有三个都向服务器发送请求)设置应用程序,则不会执行直接更新检查。

    3. 如果您选择使用 onConnectionFailure 覆盖 Worklight 提供的默认对话框,则“详细信息”按钮(如果您想要的话,我假设它)不可用。通过覆盖,您可以选择完全自定义它。

    【讨论】:

    • 对于第 1 点,我正在 iOS 模拟器上进行测试,我已经将我的初始化放在一个函数中并在 wlCommonInit 中调用它,但是当我断开计算机并重试时,我发现我有错误弹出窗口(带有详细信息按钮),但未进行初始化!
    • 你问的问题太模糊了。制作一个示例项目并在您的问题中提供它。
    • 您可以在 wlCommonInit() 函数中添加 alert("Hello") ,并在线和离线测试它。离线时不会触发!
    • “离线”是什么意思?一个空白的新项目,其中唯一的变化是 wlcommoninit 中的 alert("hello")?
    • 我很困惑。我现在仔细检查了。在 connectOnStartup:true 的情况下,如果应用程序连接服务器失败,wlCommonInit 将不接受请求,因为初始化没有成功完成。我相应地更新了我的答案。
    猜你喜欢
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 2014-01-18
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    相关资源
    最近更新 更多