Android WebView Kullanımı

Android WebView

* Merhaba arkadaslar , yeni bir yazıda tekrar beraberiz . Bugün WebView kullanımına bakıcaz .
* WebView : Android içerisinde bulunan ve web sayfalarını göstermeye yarayan bir view nesnesidir . Uygulama içerisinde web sayfalarını yüklemek istenildiginde kullanılır genelde .
* Bizde bugün birkaç web  sayfasını uygulamamız içerisinde ziyaret edicez . Uygulamamızın senaryosu ise ; Ana ekranımızda bir ListView ve bu listView üzerinde birkaç website adresi mevcut . Kullanıcı birine tıkladıgında ise webView ^imizin oldugu sayfaya bu adresi gönderip bu sayfada da WebView üzerinde web adresimizi göstermek olacak . Hazırsanız başlayalım
* Uygulama çıktıları şu şekilde ;
* Başlayalım , Öncelikle Ana layoutumuzda ne var bir bakalım . Ana layoutumuzda sadece bir ListView var arkadaslar , bunun nasıl yapıdıgını anlattıgım icin üzerinde durmucam  . Sadece bir çıktı vereyim ;
* activity_main.xml içeriği ise şöyle ;

 

 

* Şimdi MainActivity.java dosyamıza gelelim ;

 

 

* Java dosyamız bu şekilde arkadaslar , neler yaptıgımıza bir bakalım .
  1. ListView üzerinde gözükecek olan ve webView üzerinde yükleyecegimiz web adresleri tanımlıyoruz .
  2. ListView ve ArrayAdapter tanımlarını yaptık .
  3. ListView ile iletişime geçtik . Adapter^imizi olusturduk ve listView^e set ettik . Bunları daha once anlatmaya çalışmıştım eger sıkıntı varsa bu konuda oraya bakabilirsiniz .
  4. ListView üzerine tıklanmaya olayına geçiyoruz arkadaslar . Bir intent nesnesi olusturuyoruz ve bu intent nesnesi üzerine bir bilgi ekliyoruz . Bu bilgi tıklanan satırdaki web adresi oluyor . Onuda yukarıda tanımladıgımız String dizisinden alıyoruz .
  5.  Son olarak startActivity() ile diğer Activity^e geçiyoruz .
* İlk Layoutumuzu ve MainActivity.java^yı hallettikten sonra ikinci Layouta ve WebView^in olacagı ikinci Activity dosyamızı olusturalım .
* Layout’dan baslayalım ;

 

 

* webview_layout.xml ise şu şekilde ;

 

 

 

 

* Soldaki paletten bir WebView sürükledim arkadaslar . Bu webView ekranın tamamını kaplıyor . Basit birşey yaptıgımız işlem . Layoutumuz sadece bu kadar .
* Şimdi ikinci Activity dosyamızı olusturalım . Daha önce açıklamıştım ama burada da değinmekte faydar var . PaketAdi^na sağ tıklayıp , New -> Class dedikten sonra Activity adını yazmanız gerekir ve SuperClass olarak (extends) Activity yazmanız lazım .
Şöyleki ;
* Activity dosyamızı olusturduktan sonra bunu Manifest.xml dosyasına kaydetmemiz lazım .
Ufak bir hatırlatma yapalım . Manifest.xml dosyası , uygulamamızın fihristini tutan dosyamızdı .
Yani biz ne yaparsak haber veriyorduk , kaydediyorduk buraya. Kanun koyucu , uygulamanın neler yapabliecegi gibi terimlerde kullanılır manifest.xml için .
Uygulama yüklerken görmüşsünüzdür , bu uygulama şu tür izinleri istiyor diye . Android bunu manifest.xml^e bakarak anlıyor .
Eğer izin gerekecek bir işlem yapıyorsak (İnternete bağlanma , Dosya yazma/okuma) bunu belirtmemiz lazım . Ki kullanıcı uygulamanın neler yaptıgını anlasın .
Şeffaf olmakta fayda var . Olmasanızda , yani yok ben yazmıyayım manifest.xml^e derseniz hata alır programınız çalışmaz
* Manifest dosyamıza bakalım ;

 

 

* Neler yapmışız ;
  1.  <uses-permission /> ile izin tanımı yapıyoruz arkadaslar . Name kısmında alacagımız iznin adını yazıyoruz . Burada sayı olarak bir sınır yok isterseniz tüm izinleri de alabilirsiniz . Ama olabildigince kullanmadıgınız , işinizin olmadıgı bir izin almayın . Kullanıcılar genelde bundan çok şikayet ederler , yok efenim çok izin istiyor diye

Neyse “android.permission.INTERNET” ile uygulamamızın İnternete erişeceğini bildiriyoruz.
Bu arada iznin nerede tanımlandıgına dikkat edin arkadaslar . manifest tag^ının içinde ve application tag^ının dışında olması gerekiyor .

  • Az önce olusturmuş oldugumuz Activity dosyasını  <activity />  tag^ı ile yazıyoruz . Hemen yanındaki android:name kısmına WebView için oluşturduğumuz Activity adını yazıyoruz .
  • Ve geçiyoruz .

 

* WevViewActivity.java dosyamıza bakalım ;

 

 

* Java dosyamız bu şekilde arkadaslar . Neler yaptık bir bakalım ;
  1. WebView tanımladık .
  2. MainActivity^den gelen web adresini aldık . İntent ile Veri transferi  adlı yazımda bunu anlatmıstım . Sorun olursa oraya bakabilirsiniz .
  3. Geldik asıl konumuza . Önce WebView ile iletişime geçtik . Daha sonra loadUrl() ile aldığımız
    web adresini yükledik . Bu sayede web adresi yüklenmiş oldu arkadaslar .
    Hemen altında getSetting().setJavaScrpitEnabled()  webView üzerinde javascript kodlarının da çalışmasını sağladık .
  4. Son olarak ve opsiyonel olarak tabi , size kalmış bir durum . WebViewClient  ile web sayfamızın durumunu kontrol ediyoruz . Burada iki method Override ettik .
    Bunlar onPageFinished ve onReceivedError  .* onPageFinished  : Web sayfasının yüklenmesi tamamlandıgında çalışır . Biz başarılı bir şekilde sayfanın yüklendigini belirtiyoruz .* onReceivedError : Sayfa yüklenirken herhangi bir sorun oluşursa devreye girer . Bizde hata olursa eğer bir Toast ile hata mesajı veriyoruz .
* Buraya kadar sağ salim geldiysek eger arkadaslar WebView^imiz düzgün çalışması lazım . Aslında ufak ( çok ufak ) bir browser yapmış olduk
* WebView^in daha bir çok methodu var arkadaslar . Bunlardan bir kaçı ;
 canGoBack() , canGoForward() , clearHistory() , getProgress() , getTitle() ,getUrl() .
Bunlarında ne işe yaradıgını kısmen anlamışsınızdır arkadaslar . Şöyle ki ;

 

 

* Bir başka özellikde arkadaslar , direkt olarak html kodlarını da webView üzerinde çalıştırabilirsiniz . Hemen bir örnek vereyim ;

 

 

* Eğer şöyle bir şey yazarsak bildigimiz html kodlarını WebView üzerinde gösterecektir . Yanlız loadUrl yerine loadData yazdıgımıza dikkat edelim . İlk parametre html kodu, ikinci parametre yazı tipi oldugunu belirtmek için , ücüncü parametre ise encoding için . Şu çıktıyı alabiliriz ;
* Evet arkadaslar yazımızın sonuna geldik . Umarım sıkılmamışsınızdır .
* Bir sonraki yazımızda görüşmek üzere . ~Alican Akkuş
* Kaynak kodlar : WebViewExample

* ve mâ tevfîkî illâ billâh(billâhi), aleyhi tevekkeltu ve ileyhi unîb(unîbu) / Benim başarım ancak Allah iledir . Ben O’na tevekkül ettim ve O’na yöneldim .

* Mutlu kalın , Kod^la kalın ve bol bol Çay için
1143 Total Views 2 Views Today