如何捕获 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”