我正在进行的项目,他们希望在每次调用之前检测活动服务器连接。
我试图找出它是否更好用: WL.Device.getNetworkInfo:isNetworkConnected 要么 WL.Client.connect
我知道getNetworkInfo只会检查手机是否与网络有竞争性,而wl.client.connect实际上会连接到服务器。我只是害怕在每次调用invokeProcedure之前,wl.client.connect都是一个昂贵的调用。有没有更好的方法在invokeProcedure调用之前检查连接?
答案 0 :(得分:4)
getNetworkInfo API可用于验证设备当前是否具有互联网连接。
对于WL服务器连接,只有一种方法可以验证服务器是否可访问,这是通过向WL服务器发出请求并验证其是否成功。然而,这不是正确的方法。每个WL服务器调用API,例如WL.Client.connect(),WL.Client.login(),WL.Client.invokeProcedure()具有onSuccess和onFailure回调。使用它们来验证服务器连接是否成功。
从技术上讲,即使您在提出实际请求之前执行了WL.Client.connect()之类的其他请求,也不会100%保证真实请求会成功。
此外,您可能希望利用每次上次WL服务器调用状态时触发的WORKLIGHT_IS_CONNECTED和WORKLIGHT_IS_DISCONNECTED事件切换成功< - >失败。在Worklight Getting Started页面上查看离线培训模块。