Ibm mobilefirst Worklight直接更新并脱机运行

Ibm mobilefirst Worklight直接更新并脱机运行,ibm-mobilefirst,Ibm Mobilefirst,我想实现这样的功能。 即: 1) 如果成功连接到worklight server,则可以使用直接更新。 2) 如果无法连接到worklight server,应用程序可以脱机运行 下面是我在“initOptions.js”中的配置 但它不起作用。 有什么想法吗?只有当与服务器的连接可用时,才会进行直接更新。从你回答问题的方式来看,你的问题是,当应用程序无法连接到服务器时,它无法“脱机”工作。因此,您的问题与直接更新无关(如果有,请适当地重新表述您的问题) 你应该做的,是 您没有指定什么“不起作用

我想实现这样的功能。 即: 1) 如果成功连接到worklight server,则可以使用直接更新。 2) 如果无法连接到worklight server,应用程序可以脱机运行

下面是我在“initOptions.js”中的配置

但它不起作用。
有什么想法吗?

只有当与服务器的连接可用时,才会进行直接更新。从你回答问题的方式来看,你的问题是,当应用程序无法连接到服务器时,它无法“脱机”工作。因此,您的问题与直接更新无关(如果有,请适当地重新表述您的问题)

你应该做的,是


您没有指定什么“不起作用”。您是否收到您在onConnectionFailure中发出的警报?您的DodojoRady函数看起来如何?

我也在Worklight中使用Dojo

我的做法是将worklight配置为而不是在启动时连接

 var wlInitOptions = {  
     connectOnStartup : false
在wl init中,我初始化dojo应用程序

 function wlCommonInit(){
  loadDojoLayers(); 
 };
需要我正在使用的任何层,然后执行实际的dojo解析

 require([ "dojo/parser",
          "myApp/appController",
          "dojo/domReady!"
        ],
       function(parser, appController) {                
           parser.parse().then (function(){
                appController.init();
       });          
});
最后,现在WL、Dojo和myApp都准备好了,我尝试WL连接,从appController.init()调用此方法


此时将发生任何直接更新活动。请注意,无论连接是否工作,整个应用程序都会继续运行,但很明显,我们可以在成功和失败的情况下运行适当的代码。根据具体需要的身份验证,可能需要显式登录调用-基于适配器的身份验证不能从connect()内部自动进行。

我使用的是worklight版本:5.0.5。当网络可用时,直接更新工作正常;但离线时,我的应用程序无法运行。谢谢你的链接,伊丹。我调用了一个错误的方法。我应该在onConnectionFailure中调用wlCommonInit函数。onConnectionFailure:函数(){wlCommonInit();},
 require([ "dojo/parser",
          "myApp/appController",
          "dojo/domReady!"
        ],
       function(parser, appController) {                
           parser.parse().then (function(){
                appController.init();
       });          
});
connectWLServer: function() {

      // possibly WL.Client.login(realm) here

       var options = {
             onSuccess: lang.hitch(this, "connectedWLServer"),
             onFailure: lang.hitch(this, "connectWLServerFailed"),
       };

       WL.Client.connect(options);
}