ios - 这种检查互联网连接的方法有什么问题?

标签 ios objective-c networking

在寻找一种简单的异步方法来检查 iOS 中的互联网访问时,我有一个想法,使用 UIWebView 来处理异步性:

-(void) testNet
{
    UIWebView *webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
    webview.delegate=self;
    NSString *urlAddress = @"http://bla.com/dummySmallFile.txt";
    NSURL *url = [NSURL URLWithString:urlAddress];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
   [webview loadRequest:requestObj];
}
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    //deal with no net stuff here
}
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    //net is there, use it here
}

这似乎有效,但我想知道这种方法是否存在我可能没有意识到的隐患。有什么想法吗?

最佳答案

这种方法有两个缺点,但没什么可做的:

  1. 数据使用:在使用蜂窝数据的设备上,您正在使用数据。如果文件足够小,它应该不会被注意到,但它仍然存在。
  2. 如果您正在检查一般的互联网访问情况,而不仅仅是该网站,那么如果该网站已关闭,您的应用将假定互联网已关闭。这可以通过在高可用性云服务器上运行检查服务或使用非常高可用性的网站来缓解。

关于ios - 这种检查互联网连接的方法有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19104451/

相关文章:

ios - UIImagePickerController 不是全屏

ios - 从终端手动链接 React native 项目的 native 库

ios - 无法在 viewDidLoad 方法中获取传递的数据

ios - NSStream - 反向 DNS 查找错误

用于发出 HTTPS 请求的 C++ 高级网络库

java - 单个java程序可以通过两个不同的端口发送和接收数据吗

ios - 如何在 Objective-C 中创建新对象并分配属性?

ios - 无法确定 EXC_BAD_ACCESS 的可能原因(在应用程序启动期间发生)

iphone - Objective-C for循环问题

objective-c - PhoneGap/Cordova iOS : capture video with a duration limit (ie. 30 秒)