Site icon Mobilhanem

iOS İnternet Bağlantısı Kontrolü (Reachability)

Merhaba arkadaşlar,

Mobil uygulama geliştirme konusunda dersler anlattığımız/paylaştığımız mobilhanem.com platformu üzerinden bugünde İos da İnternet Bağlantısı Kontrolü nasıl yapılır onu anlatacağız.Hepimizin mağlumudur ki bugün uygulamaların bir çoğu internet bağlantısı kullanmaktadır.Bizler uygulama geliştirirken internet bağlantısı olup olmadığını kontrol etmeliyiz ki uygulamımız internete bağlanmaya çalışırken cihaz internete bağlı değilse uygulalmız crash olmasın yani patlamasın.

Bu konuda ios kendisi bizlere yardımcı olmuş ve Reachability sınıfını yazmış.Tony Million adlı arkadaşımızda bu sınıfları kullanarak biraz daha özelleştirmiş.Bu sınıf kendisi internet koptuğu yada bağlandığı zaman bizlere haber veriyor. Reachability sınıfı ağı dinliyor ve internet durumunda bir değişim olduğu zaman haber veriyor. Androiddeki Broadcast Receiver gibi bir çalışma mantığı var.

[wpdm_file id=26]

Arkadaşlar konuyu daha fazla uzatmadan hemen kod kısmına geçiyorum .Ben her zamanki gibi ufak bir uygulama ile anlatmaya çalıştım.Öncelikle bu adresteki örnek uygulamayı indiriyoruz.İsterseniz burdaki örnek uygulamayıda kontrol edebilirsiniz. Bize lazım olan ise o dosyanın içindeki Reachability.h ile Reachability.m dosyaları.

Şimdi projemizi oluşturalım.Xcode->New->Project->Single View Application seçiyoruz. Açılan sayfada gerekli alanları doldurduktan sonra Create diyor ve projemizi kaydedeceğimiz yeri seçip projeyi oluşturuyoruz.

İndirdiğimiz klasördeki Reachability.h ile Reachability.m dosyalarını alıyor ve direk sürükleyip oluşan projemizin içine atıyoruz.Bundan sonra projemizin Build Phases altındaki Link Binary with Libraries kısmından SystemConfiguration.framework frameworkünü ekliyoruz.

 

 

Buraya kadar sorunsuz bir şekilde yaptıysak artık gerisini direk kod üzerinden devam edelim.Ben yine ufak bir proje hazırladım.Projenin kaynak dosyalarını ekleyeceğim. Onun üzerinde gerekli açıklamaları yaptım.

 

ViewController.m

//
//  ViewController.m
//  InternetKontol
//
//  Created by taha on 09/09/14.
//  Copyright (c) 2014 Mobilhanem. All rights reserved.
//

#import "ViewController.h"
#import "Reachability.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(reachabilityChanged:)
name:kReachabilityChangedNotification
object:nil];

Reachability * reach = [Reachability reachabilityWithHostname:@"www.google.com"];//kontrol ederken google a bağlanıp bağlanmadığını kontrol ediyor.

[reach startNotifier];//Notifier başlatıyoruz. Ağda bir değişiklik olduğu zaman bizi reachabilityChanged methodumuz çağırılacak.
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)reachabilityChanged:(NSNotification*)note
{
Reachability * reach = [note object];

if([reach isReachable])//internet varsa
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"İNTERNET BAĞLI"
message:@"İnternet Bağlantısı Var."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
else//internet yoksa
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"İnternet Yok"
message:@"İnternet Bağlantınızı Kontrol Ediniz"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];

}
}

@end

 

Biz burda internet koptuğu zaman Alert bastırıyoruz ve kullanıcıyı bilgilendiriyoruz. Ama kullanıcı hala uygulamayı kullanmaya devam edecek ve internet bağlantısı gerektiren bir işlem yaptığında uygulama patlayacak.Bunu önlemek için şunu yapabilirsiniz. Static bir boolean değer belirleyip bu değer için static  get methodu yazarsınız.İnternet koptuğunda bu değeri false yaparsınız.Kullanıcının her etkileşiminde bu get methodunu çağırıp değerimiz false ise işlem yaptırmazsınız.Tabi bu algoritmayı siz farklıda kurabilirsiniz.

Bu dersimde anlatacaklarım bu kadar bir dahaki İOS dersimde AdMob eklemeyi anlatmayı düşünüyorum. O zamana kadar kendinize iyi bakın ve destek için sayfamızı facebook.com/mobilhanem beğenmeyi unutmayın.

[wpdm_file id=26]

 

0
Exit mobile version