2013-09-30 5 views
2

В поисках простого асинхронного метода проверки для доступа в Интернет в прошивкой, у меня была идея, с помощью 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 
} 

Это, кажется, работает, но я хотел бы знать, если есть любые скрытые опасности, которых я, возможно, не знал в этом подходе. Есть идеи?

+0

Вы конкретно пытаетесь проверить доступ к этому сайту или доступ в Интернет в целом? – jprofitt

+0

Просто проверьте наличие существующего интернет-соединения. Сайт может быть Google или что-то надежное, но в настоящее время я использую свой собственный файл с небольшим файлом, чтобы минимизировать нагрузку. –

+3

Почему бы не использовать то, что используют большинство людей - «Достижимость»? – rmaddy

ответ

2

Есть два недостатки такого подхода, но не так много, чтобы сделать:

  1. Использование данных: На устройстве с использованием сотовых данных, вы используете данные. Если файл достаточно мал, он не должен быть заметным, но он все еще там.
  2. Если вы проверяете доступ к Интернету в целом, а не только для этого сайта, если этот сайт не работает, ваше приложение будет считать, что Интернет не работает. Это можно смягчить, запустив службу проверки на облачных серверах высокой доступности или используя сайты с высокой степенью доступности.
+0

@ Yazanalhoroub: # 1 имеет значение гораздо меньше, чем # 2. # 2 - реальная проблема. – Linuxios

+0

Определенно. Я собирался «что, если я впервые проведу это с этим, тогда, если он не сработает, я попробую Google, чтобы быть уверенным ...», но этот подход использовал его для моих первоначальных целей тестирования, и его время пришло :) Большое спасибо. –

+0

@Yazanalhoroub: Конечно. – Linuxios

Смежные вопросы