我的IBM Mobilefirst应用程序在启动时连接到服务器。当我尝试在离线模式下打开应用时,它会显示一条警告"应用程序无法通过3个按钮连接到服务" :"重新加载",& #34;靠近"和"细节"。
如何在应用离线时停用此提醒?我试过不打电话给WL.Client.connect
但是没有工作。处理这个问题的正确方法是什么?
离线模式下的日志:
04-06 15:54:21.578: E/NONE(16221): [/apps/services/api/app1_worklight/android/logout] Host is not responsive. Try to manually access the URL through the android emulator browser to verify connectivity.
04-06 15:54:21.588: E/NONE(16221): Client init failed. The service is currently not available.
答案 0 :(得分:1)
如果您没有打电话给WL.Client.connect
,则无法,当设备连接到互联网并启动应用程序时,您仍然会收到此消息。听起来你并没有真正生成一个不包含connect
方法的新应用。
我通过使用initOptions.js中的connectOnStartup
属性并关闭开发服务器来重现上述对话框。 请注意,此属性已弃用,启动Worklight 6.2 。
至于实际问题 - 如果连接尝试失败,则不显示默认的失败对话框,我有两个选项:
不要在initOptions.js中使用connectOnStartup
。相反,在常见的\ js \ your-main.js中使用:
function wlCommonInit() {
WL.Client.connect ({onSuccess: successCallback, onFailure: failureCallback});
}
function successCallback() {
...
}
function failureCallback() {
...
}
如果连接尝试失败,将调用failureCallback
函数。
如果 使用connectOnStartup
,那么在共同的\ js \ _ initOptions.js中添加onFailure
选项。这将覆盖默认行为。实施将如下:
var wlInitOptions = {
connectOnStartup:true,
onFailure: function() {
WL.App.hideSplashScreen();
wlCommonInit();
},
...
}
但必须注意,您正在改变应用程序流程,并且通过覆盖默认流程,您现在完全掌控它,并且必须确保在您的应用程序中没有发生任何意外情况。
另外,为什么要删除此对话框?有一个关闭按钮......
答案 1 :(得分:0)
从日志中可以看出,正在调用从MobileFirst服务器注销。检查您的应用程序代码,确保您没有对MobileFirst服务器进行任何调用,而不仅仅是连接。
答案 2 :(得分:0)
根据日志,注销请求已发送到服务器。
由于设备处于脱机模式,因此请求失败。
我相信以下实施将对您有所帮助,
function wlCommonInit() {
WL.Client.connect ({onSuccess: successCallback, onFailure: failureCallback});
}
function successCallback() {
if( WL.Client.isUserAuthenticated("RealmName")){
WL.Client.Logout("RealmName",{
onSuccess:function(){},
onFailure:function(){}
}
);
}
}
function failureCallback() {
...
}
或
function wlCommonInit() {
WL.Device.getNetworkInfo(
function (networkInfo) {
if (networkInfo.isNetworkConnected == "true") {
if( WL.Client.isUserAuthenticated("RealmName")){
WL.Client.Logout("RealmName",{
onSuccess:function(){},
onFailure:function(){}
});
}
}
}
);
}
它是一个示例代码段,您可以自定义您想要的方式。
此link [ IBM MobileFirst Platform 7.0 ]将帮助您了解如何处理这种复杂的机制。