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 试图问的问题:

“你认为每秒多少字节很慢?”

您需要确定您认为用户愿意等待预期返回的数据量的时间。

如果您告诉用户您正在下载 50 MB 的数据,那么是的,在 20 秒内将它们全部恢复是很快的。

但是,如果您预计只有 5-10 KB 的数据并且它需要超过 10 秒,更不用说 20 秒,那么连接非常慢。

于 2012-12-17T07:48:48.523 回答