|
Hálózati csatlakozás ellenõrzése
Az Apple alkalmazáspolitikája szükségessé teszi, hogy egy hálózati csatlakozást is igénybe vevő program ellenőrizze le induláskor, tud-e a szerverhez csatlakozni, illetve célszerű egy-egy szerveroldali lekérés előtt nem megvárakoztatni a felhasználót, hanem frissiben ellenőrizni, van-e kapcsolat a szerverrel. Utolsó alkalmazásomban, mely sajnos nem fog megjelenni, az Appleblog szerveréhez próbál csatlakozni a program.
Az Apple tutorialjaiban komolyabbnál komolyabb megoldásokat javasol, ám itt van egy halálosan egyszerű ellenőrzés, mely mindig átment az ellenőrzésen.
Definiáljuk az URL-t, létrehozunk egy kérést (request), ahol az időtúllépés intervallumát 5 másodpercre állítjuk. Tapasztalatom, hogy Edge hálzaton ez még jó lehet, nagyon lassú hálózatnál már azt jelzi, hogy nincs kapcsolat. Megnyitjuk a weblapot, és ha nem sikerült a csatlakozás, megjelenítünk egy figyelmeztető ablakot. Ilyen egyszerű...
+ (BOOL)connectedToNetwork {
NSURL *myURL=[NSURL
URLWithString:[at]"http://appleblog.blog.hu"];
NSURLRequest *myURLRequest=[NSURLRequest
requestWithURL:myURL
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:5];
NSError *error;
NSData *myData=[NSURLConnection
sendSynchronousRequest:myURLRequest
returningResponse:nil
error:&error];
BOOL connected=(myData==NULL)?NO:YES;
if (!connected) {
UIAlertView *myAlert=[[UIAlertView alloc]
initWithTitle:[at]"Hálózat" message:[at]"A hálózat nem
elérhető!" delegate:nil cancelButtonTitle:[at]"OK"
otherButtonTitles:nil];
[myAlert show];
[myAlert release];
}
return connected;
}
  swGuru
|