アップルが提供する到達可能性クラスを追加しましたが、インターネット接続をチェックするために正常に機能しています。インターネットがオフになると、私のアプリはメッセージを表示しています。
しかし、インターネットが非常に遅い場合は、ロードを続けます......。
私はwi-fiを使用していますが、iPhoneの通知バーにwifi信号のドットしか表示されない場合にこの問題が発生します。
だから私はどうすれば遅いインターネット接続をチェックできるのか知りたいです。
アップルが提供する到達可能性クラスを追加しましたが、インターネット接続をチェックするために正常に機能しています。インターネットがオフになると、私のアプリはメッセージを表示しています。
しかし、インターネットが非常に遅い場合は、ロードを続けます......。
私はwi-fiを使用していますが、iPhoneの通知バーにwifi信号のドットしか表示されない場合にこの問題が発生します。
だから私はどうすれば遅いインターネット接続をチェックできるのか知りたいです。
サーバーにリクエストを送信し、返されると予想されるデータが約5〜10 KBであることを前提として、たとえば20秒にスケジュールされたタイマーコールバックを作成できます。
20秒以内に応答がない場合は、接続が遅いと考えてみましょう。
例:
// make POST request to server, the POST request should have a callback method assigned
[self testSpeed];
// schedule a method to be called after 20 seconds
myTimer = [NSTimer scheduledTimerWithInterval:20.0 selector:@selector(stopSpeedTest) .... ];
// your POST request callback method
-(void)speedTestCallback
{
[myTimer invalidate];
myTimer = nil;
[self alertGoodSpeed];
}
// your stopSpeedTest method to identify app didn't receive response within 20 seconds
-(void)stopSpeedTest
{
[self alertTooSlow];
}
それがH2CO3が求めていたものだと思います。
「1秒あたり何バイト遅いと思いますか?」
ユーザーが返されると予想されるデータの量を待つことをいとわないと思う長い間、決定する必要があります。
50 MBのデータをダウンロードしていることをユーザーに伝えている場合は、そうです。20秒ですべてを元に戻すのは高速です。
ただし、5〜10 KBのデータしか期待しておらず、20秒は言うまでもなく、10秒以上かかる場合は、接続が非常に遅くなります。