如何捕获 Worklight defaultOptions:onFailure 事件?

Posted

技术标签:

【中文标题】如何捕获 Worklight defaultOptions:onFailure 事件?【英文标题】:How do I capture the Worklight defaultOptions:onFailure event? 【发布时间】:2014-05-21 23:05:23 【问题描述】:

我有一个在 ios 上运行的 Worklight 6.1.0.1 混合应用程序。该应用程序使用基于适配器的身份验证。当点击登录按钮时,应用程序准备调用数据进行以下调用:

singleStepAuthRealmChallengeHandler.submitAdapterAuthentication(invocationData, );

如果 WL 服务关闭,或者移动设备无法访问网络,则调用将超时。我在 Xcode 控制台中看到以下内容:

defaultOptions:onFailure Request timed out for http://myipaddress:10080/myapp/apps/services/../../invoke. Make sure the host address is available to the application (especially relevant for android and iPhone apps).

如何捕获此超时事件,以便使用正确的消息更新 UI?

【问题讨论】:

【参考方案1】:

根据 cmets 于 5 月 23 日更新:

您的具体流程是什么?

你应该首先使用WL.Client.connect(onSuccess: ..., onFailure:...); 如果与服务器的连接成功,您将进入挑战处理程序。否则,您将输入 onFailure 并在那里您可以创建自定义错误处理。


之前的回答尝试: 以下是尝试 connect() 到 Worklight 服务器时的情况。

如果您希望在客户端无法连接到服务器时进行自定义处理,我相信您需要在 initOptions.js 中启用并使用选项 onConnectionFailure

var wlInitOptions = 
// # The callback function to invoke in case application fails to connect to Worklight Server
    //onConnectionFailure: function (),


否则,将显示 Worklight 的默认对话框。

【讨论】:

在我的应用程序中,Worklight 的默认对话框从不显示。我只知道超时,因为我在日志中看到它。 @richardsun,确保在调用适配器之前验证是否执行了 WL.Client.connect。连接有选项:onSuccess、onFailure。如果成功,则调用适配器过程。如果由于某种原因失败,请显示您的自定义错误。

以上是关于如何捕获 Worklight defaultOptions:onFailure 事件?的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6.1 - 未捕获的 ReferenceErrors:未定义 WLJQ,未定义 WL

如何正确输入 Apollo Client defaultOptions?

IBM Worklight 5.0.x:未捕获的 TypeError:无法调用未定义的方法“init”

Worklight 6.1 未连接到生产服务器

IBM Worklight 6.0 - 如何将 Worklight 应用程序部署到 Worklight Server?

IBM Worklight - 如何将 Worklight 代码导入 Eclipse?