Web View’i uygulamamızın içinde kullanabildiğimiz bir browser olarak nitelendirilebiliriz.
Web view’i siz değerli okuyucularıma anlatırken,
- Web view’i bir URL’e yönlendirme,
- Web view’e bir HTML string’i yükleme,
- Web view’i stop etme,
- Web view reload etme
özelliklerini kullanacağım.
Projemi oluşturup ekrana 1 tane Web View ve 5 tane buton koyuyorum. Butonlara “My Twitter”, “Google”, “About Me”, “Reload”, “Stop” şeklinde başlıklar verdim.
- My Twitter -> Twitter sayfamı yükleyecek
- Google -> Google’ı yükleyecek
- About Me -> Hakkımda sayfasını benim verdiğim HTML String ile yükleyecek
- Reload -> Mevcut sayfayı yeniden yükleyecek
- Stop -> Mevcut sayfanın yüklenmesini durduracak
Web view’i outlet, Butonları’da action olarak tanımlıyorum. Uygulama ilk açıldığı zaman, herhangi bir sayfa yüklemeyeceğim. Kullanıcı butonlara basınca sayfaların yüklenmesini istiyorum.
Ayrıca, sayfalar yüklenirken, kullanıcının sayfanın yüklendiğini anlaması için “Activity Indicator” kullanacağım. Activity Indicator View’i browser’ın ortasına gelecek şekilde ekliyorum.
Özelliklerde Behaviour’a geliyorum, Animating ve Hides When Stopped’ı seçiyorum. Bunlar bana activity indicator’ın çalışmasını ve ben stop ettiğim zaman ekrandan kaybolmasını sağlayacak.
Daha sonra da outlet olarak .h’a tanımlıyorum.
.h dosyamız
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// // ViewController.h // Web View // // Created by Muhammed on 19.05.2014. // Copyright (c) 2014 Muhammed. All rights reserved. // #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIWebViewDelegate> @property (weak, nonatomic) IBOutlet UIWebView *webView; - (IBAction)btnTwitter:(id)sender; - (IBAction)btnAboutMe:(id)sender; - (IBAction)btnGoogle:(id)sender; - (IBAction)btnReload:(id)sender; - (IBAction)btnStop:(id)sender; @property (weak, nonatomic) IBOutlet UIActivityIndicatorView *activityIndicator; @end |
.m dosyamız:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
// // ViewController.m // Web View // // Created by Muhammed on 19.05.2014. // Copyright (c) 2014 Muhammed. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //uygulama ilk açıldığında activity indicator'ın görünmemesini sağlıyor [_activityIndicator stopAnimating]; //web view'e delegatelerine erişebilmesi için, bu class'a bakmasını söylüyorum. _webView.delegate=self; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } - (IBAction)btnTwitter:(id)sender { //twitter adresimi yüklüyor [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.twitter.com/oz_muhammed" ]]]; } - (IBAction)btnAboutMe:(id)sender { //benim verdiğim html string'i yüklüyor [_webView loadHTMLString:@"Hi, <br> My name is <b>Muhammed</b> <br><br>To see detailed information, please visit : https://kod5.org/yazar/muhammed-ozdemir/ " baseURL:nil]; } - (IBAction)btnGoogle:(id)sender { //google'ı yüklüyor [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com" ]]]; } - (IBAction)btnReload:(id)sender { //mevcut sayfayı yeniden yüklüyor. [_webView reload]; } - (IBAction)btnStop:(id)sender { //yüklenmekte olan sayfanın yüklenmesini iptal ediyor. [_webView stopLoading]; } -(void)webViewDidStartLoad:(UIWebView *)webView{ //web view bir sayfayı yüklemeye başlayınca bu metoda düşer. //bende burada activity indicator'ı çalıştırmaya başlıyorum. [_activityIndicator startAnimating]; } -(void)webViewDidFinishLoad:(UIWebView *)webView{ //web view bir sayfayı yüklemeyi bitirdiğinde bu metoda düşer. //bende burada activity indicator'ı çalıştırmayı bitiriyorum. [_activityIndicator stopAnimating]; } @end |
NOT: Kod içerisindeki açıklama satırları,Web View’i anlamanızın en iyi yolu diye düşünüyorum.
Ekran Görüntüleri:
Bir sayfa yüklenirken:
Bir sayfa yüklendikten sonra:
Html String yüklendikten sonra:
Uygulama dosyaları için : https://github.com/ozdemirmuhammed/Web-View
[…] Okumaya devam et… […]
s.a. bir web sitesinde soap ile veri çekmek istiyorum bunu nasıl yaparım yardımcı olabilir misiniz
Merhaba Veli,
Bir web sitesinde soap ile veri çekmek mi istiyorsun, yoksa bir web sitesinden soap ile veri çekip bunu iOS uygulamanda kullanmak mı istiyorsun?
Ona göre yardımcı olmaya çalışayım 🙂
Selamun Aleyküm Ben Mevcut Olan Mobil Sitemin İOS Uygulama Olarak Mağazaya Atmak İstiyorum. Sadece Webview Olarak Apple Storea Yükleme Yapabilirmiyim. Alternatif Olarak Siz Ne Önerirsiniz. Teşekkür Ederim.
A.s. Mehmet, Evet yükleme yapabilirsin.
Peki sizin paylaştığınız bu örneğe internet kontrolünü nasıl yaptırabiliriz. yani uygulama açıldığında kontrol edecek internet varsa uygulama açılacak. internet yoksa “Lütfen İnternet Bağlantınızı Kontrol Ediniz” diyecek. Yardımcı olursanız çok sevinirim.
Merhaba hocam bir sorum olacaktı. Webview ile hazırlamış olduğumuz uygulamayı appstore kabul eder mi? Bunun ile ilgili herhangi bi kısıtlama varmı? Web sitem yapısı responsive tüm çözünürlüklerde tam uyum sağlamakta verdiğiniz kaynak uygulamayı oluşturup ücretli üyeliği aktive etmek istiyorum tek korkum appstore tarafından onay görmemesi, böyle bir durum söz konusu olabilir mi?