16

アップルが提供する到達可能性クラスを追加しましたが、インターネット接続をチェックするために正常に機能しています。インターネットがオフになると、私のアプリはメッセージを表示しています。

しかし、インターネットが非常に遅い場合は、ロードを続けます......。

私はwi-fiを使用していますが、iPhoneの通知バーにwifi信号のドットしか表示されない場合にこの問題が発生します。

だから私はどうすれば遅いインターネット接続をチェックできるのか知りたいです。

4

1 に答える 1

16

サーバーにリクエストを送信し、返されると予想されるデータが約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秒以上かかる場合は、接続が非常に遅くなります。

于 2012-12-17T07:48:48.523 に答える