3

取り組んでいるプロジェクトでは、各呼び出しの前にアクティブなサーバー接続の検出が必要です。

WL.Device.getNetworkInfo:isNetworkConnected または WL.Client.connect を使用する方がよいかどうかを調べようとしています。

getNetworkInfo は電話がネットに接続されているかどうかのみをチェックし、 wl.client.connect は実際にサーバーに接続することを知っています。ただ残念なことに、すべての invokeProcedure 呼び出しの前に wl.client.connect を呼び出すとコストが高くなります。invokeProcedure 呼び出しの前に接続を確認するより良い方法はありますか?

4

1 に答える 1

4

getNetworkInfo API を使用して、デバイスが現在インターネットに接続されているかどうかを確認できます。

WL サーバー接続に関しては、サーバーがアクセス可能であることを確認する方法は 1 つしかありません。これは、WL サーバーに要求を発行し、それが成功したかどうかを確認することです。ただし、これは正しい方法ではありません。WL.Client.connect()、WL.Client.login()、WL.Client.invokeProcedure() などのすべての WL サーバー呼び出し API には、onSuccess および onFailure コールバックがあります。それらを使用して、サーバー接続が成功したかどうかを確認します。

技術的には、実際のリクエストを行う前に WL.Client.connect() のような追加のリクエストを行っても、実際のリクエストが成功するという 100% の保証は得られません。

さらに、最後の WL サーバー呼び出しステータスが成功 <-> 失敗に切り替わるたびに起動される WORKLIGHT_IS_CONNECTED および WORKLIGHT_IS_DISCONNECTED イベントを利用することもできます。Worklight Getting Started ページでオフライン・トレーニング・モジュールを確認してください。

于 2013-06-11T16:39:53.097 に答える