iOS UIWebView Kullanımı (Resimli)

Merhaba Arkadaşlar,

mobilhanem.com sitemiz üzerinden anlattığımız derslerimize  IOS’ta UIWebView Kullanımı ile devam edeceğiz. UIWebView adı üzerinde web sitelerini yada herhangi bir linki  uygulama içinde açmaya yarayan bir yapıdır. Aslında daha basit anlatmak gerekirse uygulama içi browser diyebiliriz.

 

Açmaya çalıştığımız site veya link eğer responsive bir yapıya sahipse çok güzel sonuşlar elde ederiz. Responsive değilse site otomatik olarak ekran boyutlarına küçülecektir.  Zoom in ve zoom out kullanarak sitemizi büyüterek kullanabiliriz.  Zaten bu bahsettiğim mobil browserlarda da aynı şekilde .

[wpdm_file id=24]

 

Gelelim kodlara.Xcode->File->New Project->Single View  Application dedikten sonra karşımıza şöyle bir ekran gelecek.

Screen Shot 2014-09-06 at 18.37.58

 

Gerekli alanları doldurduktan sonra Next ve Create diyoruz. Projemiz sorunsuz oluştuktan sonra karşımıza çıkacak ekran şu şekilde olacak.

 

Screen Shot 2014-09-06 at 18.38.05

 

Sol tarafta Project Explorer kısmından Main.storyboard ı seçiyoruz. Açılan sayfada gelen boş ekranımızın üstüne sol taraftaki bölümden Web View’i sürükleyip  bırakıyoruz.

Screen Shot 2014-09-06 at 18.44.27

 

Bundan sonraki işlemleri Objective-c claslarımız olan ve otomatik oluşan ViewController.h ve ViewController.m dosyalarımızda yapacağız.

 

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIWebViewDelegate> //UIWebViewDelagate 'e extend ediyoruz.

@property (weak, nonatomic) IBOutlet UIWebView *WebView;//WebView Referansımızı oluşturuyoruz.

@end

Evet arkadaşlar bundan sonra storyboard’da küçük bir kaç işimiz daha kalıyor.Oluşturduğumuz webView’i referansımıza bağlamak ve Class’ımızı seçmek.

Aşağıdaki ekranda daha iyi anlayacaksınız.

Screen Shot 2014-09-06 at 18.51.56

Sürükleyip bıraktığımız WebView üstüne gelip sağ tıklıyoruz ve Referencing Outlets kısmını şekildeki gibi tutup sarı kısmın(view controller) üstüne bırakıyoruz.Orda oluşturduğumuz WebView referansını seçiyoruz. Bundan sonra o sarı kısma(view controller) tıklayıp sol üstte açılan menüde Class kısmını ViewController olarak seçiyoruz.

Screen Shot 2014-09-06 at 19.00.20

 

Bundan sonraki işlemlerimizi ViewController.m de yapıyoruz.

ViewController.m

 

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
@synthesize WebView;

- (void)viewDidLoad
{
[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.
[WebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.mobilhanem.com"]]];

}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)webViewDidStartLoad:(UIWebView *)webView{//Webview yüklenmeye başladığı an çalışır
activityView=[[UIActivityIndicatorView alloc]     initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];

activityView.center=self.view.center;
activityView.color =[UIColor blackColor];
[activityView startAnimating];

[self.view addSubview:activityView];
}
-(void)webViewDidFinishLoad:(UIWebView *)webView{//Webview yüklendiği zaman çalışır
[activityView stopAnimating];

}

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{//Webview yüklenemediği zaman çalışır

}

@end

Evet arkadaşlar kod üzerinde açıklama yapmaya çalıştım. Kaynak kodu indirip inceleyebilirsiniz.

Destek için facebook.com/mobilhanem sayfamızı beğenirseniz sevinirim. Bundaki sonraki İos dersimde İos a Admob Reklam eklemek olabilir. O güne kadar kendinize iyi bakın.

 

[wpdm_file id=24] 15

Taha Kırca

iOS & Android & Apple Watch Developer, Mobilhanem.com yazarı, Karadeniz Uşağu, Ordu Sevdalısı

20 Yorum

  • Emeğiniz dert görmesin hocam, açıkçası hiç kullanmayı bilmiyorum ama basit bir mobil uyumlu nöbetçi eczane sitem var ve bu siteyi cebimde aplication olrak kullanmak istiyorum. Bu anlatım ile benim gibi bir amatör istediğini yaparmı ?

  • Hocam Merhabalar;

    bu uygulamayı xcode ile açıtığımızda activityView yazan yerlerde hata veriyor. Neden olabilir Acaba

  • Emeğinize sağlık. bu uygulamayı yazdıktan sonra simülatörde çalıştırmak istiyoruz fakat Thread 1 Breakpoint 1.1 Hatasıyla Karşılaşıyoruz sorun ne olabilir sizce

    • Ben uygulamayı şimdi çalıştırdım bir sorun yok. Sizdede büyük ihtimal bir sorun yok uygulamada break point eklemişsiniz XCode ile . Hata verdiği satırın basındaki break pointi kaldırın. Yanlız ben bu uygulamayı yazdıktan sonra ios yeni sürümlerde “http” olan linkleri actırmak için bir kac ayar yapmamızı istiyor. “https” olan linklerde sorun yok ama actıracağınız link http ise bu ipucumu inceleyiniz:

      http://www.mobilhanem.com/transport-security-has-blocked-a-cleartext-http-hatasi/

      • Hocam main.m break point kaldırdığım halde return ile başlayan satırda Thread:1 signal SIGABRT diye hata veriyor.
        ben break pointi işlemini yanlış mı yapıyorum acaba
        #import

        #import “AppDelegate.h”

        int main(int argc, char *argv[])

        {

        @autoreleasepool {

        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

        }

        }

  • Hocam ios9.3 için yapmak istiyorum ve ActivityView kodlarının hepsinde hata veriyor. Ve basit bir site için mobil app yapıp appstore’a koyamaz mıyım?

    • Bu kodu direk indirip çalıştırmak yerine kendi projeni oluşturup bu kodu içine yapıştırmalısın. Bu dersi hazırlarken AutoLayout kullanımı yoktu.

      • Hocam denedim de ekrana göre boyutlandıramadım. 6plus a da geldi 5 e geniş geldi böyle sorunlar oldu hep

        • Tamamdır bunun olmaması için ve ios’ta uygulama geliştirmeye devam etmek istiyorsan öncelikle Auto Layout kullanımını öğrenmen gerekir. iOS farklı ekranlarda aynı görüntüyü alabilmek için ios 8 ile birlikte Auto Layout kullanımını aktif etti. İnternetten Auto Layout ile ilgili dersler bulabilirsin.

  • İyi günler, ben bir web yazılımcıyım. Daha önce mobil yazılım ile ilgili hiçbir derleyici ya da yazılım dili kullanmadım. Şuan bir web sitesini ios uygulaması olarak webview ile çekmem gerekiyor. Bunun için hangi derleyiciyi indirip sizin kaynak kodlarınızı çalıştırmalıyım ve uygulama çıktısını nasıl alabilirim. Burdan ya da mail adresimden dönüş yaparak yardımcı olursanız çok sevinirim

  • Hocam Merhabalar, Ben şu anda swift üzerinden çalışıyorum. Bu kullanımı swiftte nasıl yapacağım? Örnek varsa gönderirseniz çok sevinirim. Şimdiden teşekkürler

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?