Anasayfa / Android Dersleri / Android Dersleri 12 : WebView Kullanımı

Android Dersleri 12 : WebView Kullanımı

Merhaba arkadaşlar. Bu derste webview kullanımını anlatacağım. Webview, parametre olarak verilen web sayfasını açar. Ben bu derste şöyle bir örnek yapacağım. Parametre olarak verilen web siteyi başka bir sayfada açacağım. Bunun için sayfalar arası veri aktarımını da kullanacağım.
İlk olarak projemizi oluşturalım. Eğer bunda sıkıntı yaşıyorsanız ilk android dersimize bakabilirsiniz. Bu adımları tekrar anlatmayacağım. Sayfamıza bir buton ve edittext ekleyelim. Sayfamızın görüntüsü şu şekilde olacaktır.

webview

 

Burada parametre olarak girilen linki, yeni bir sayfaya parametre olarak gönderecek ve bu linki o sayfada açacak. Şimdi yeni bir sayfa oluşturalım. Bunun için layout klasöründe yeni bir Android XML File ekleyelim ve daha sonra src altında da yeni bir Class ekleyelim. Bu adımları tek tek anlatmayacağım. Eski derslerimizden bakabilirsiniz. Eklediğimiz yeni sayfayı da AndroidManifest.xml dosyasında da tanıtacağız. Bu sayfanın görüntüsü şu şekilde olacaktır.

webview

 

Daha sonra sayfalar arası aktaracağımız verileri tutacak olan değişkenleri tanımlayalım. Bunu bir sınıf içerisinde tanımlayacağız. src klasörünün altında yeni bir Degiskenler adında bir sınıf oluşturalım. Bu sınıfı da aşağıdaki gibi kodlayalım.

webview

 

Sayfalar arasındaki verileri, bu sınıftaki değişkenler ile yapacağız. Projemizin de son görüntüsünü ve dosyaları verelim hemen.

webview

 

Benim sınıf ve sayfa isimlendirmelerim bu şekilde. Şimdi ana sınıfımızın java dosyasını kodlayalım. Yani MainActivity.java dosyasına, diğer sayfaya gitmemizi sağlayacak kodları yazalım.

webview

İlk olarak b1 ve e1 nesnelerini oluşturduk. Daha sonra bunları id’lerine bağladık. Butonun Listener‘ı içerisindeki tıklanma olayına da şunları yazdık. İlk olarak bir intent oluşturduk. Bu intent ile diğer sayfaya geçeceğiz. İlk parametre içinde bulunduğumuz sayfa, diğer parametre ise gidilecek sayfanın .class uzantısı. Bir alt satırında da putExtra() metodu ile edittext içerisine yazılan linki, değişkene attık. Bu değişkenin içerisindeki linki, diğer sayfada çekip kullanacağız.

Şimdi websayfasi.xml sayfamıza bir webview sürükleyip bırakalım. Bunu soldaki palette menüsünden Composite seçeneğinin altından yapabilirsiniz. Bu sayfamızın Graphical Layout kısmındaki görüntüsü şu şekilde olacaktır.

webview

Şimdi son olarak webactivity.java dosyasını açalım. Yani 2.sayfamızın kodlarını yazacağımız sınıfı. Bu sınıfta ne yapacağız peki? Parametre olarak gönderdiğimiz değişkenin içindeki veriyi alıp, webview’a parametre olarak vereceğiz. Kodlarımız şu şekilde olacaktır.

webview

Bakın buradaki setContentView metoduna parametre olarak, diğer sayfanın adresini verdik. Normalde yeni bir sınıf oluşturduğumuzda içerisi boş olur. İlk kısmı, diğer MainActivity.java sınıfından kopyaladık ve değiştirdik. Bunları yaptıktan sonra uygulamamız hazır oldu fakat emülatörümüzün internetini açmamız gerekiyor. Bunun için de AndroidManifest dosyamıza şu satırları eklememiz gerekiyor.

Fakat bu kodu, manifest dosyasında <application> etiketinden önce eklememiz gerekiyor.

Şimdi programımızı çalıştırıp ekran görüntüsüne bakalım.

Ekran Görüntüleri

webview webview

Butona tıkladığımızda başka bir sayfaya gitti ve parametre olarak girdiğimiz linki diğer sayfada açtı.

Bu derste webview kullanmayı anlattık. Diğer sayfaya geçmeyi ve veri aktarmayı da tekrar ettik. Bir sonraki derste görüşmek üzere.

Mehmet Kirazlı

İstanbul Eyüp'te ikamet ediyorum. Giresun Alucra'lıyım. Bilgisayar Mühendisliği bölümünden 2013 yılında mezun oldum. "Yeni Başlayanlar için Java 8" kitabının yazarıyım. Şu anda özel bir firmada Mobil Yazılım Geliştirme Uzmanı olarak çalışıyorum.

İlginizi Çekebilir

Android Dersleri 29 : Telefon Rehberi Uygulaması Yapıyoruz

Merhaba. Yine uzunca bir aradan sonra yazmaya devam ediyorum. Bu yazımda,  veritabanında değinmediğim Where ifadesine yer …

30 Yorumlar

  1. Merhaba, her şeyi hallettim fakat uygulamada siteyi açtığımda biyere tıklayınca benden tarayıcı seçmemi istiyor. Hiçbir zaman tarayıcı seçmemi istemeden uygulama içerisinde verdiğimiz sitede bir yerlere tıklansa bile direk uygulama içindeyken oralara gitmesini nasıl ayarlayabilirim? Uygulamadan hiç ayrılmayacak ve tarayıcı seçimi yapmayacak yani.

    • Merhaba. Google'da android varsayılan tarayıcı belirleme diye aratırsanız size yardımcı olacaktır.

      • hocam o dediğinizi arattırdığımda uygulama için değil de telefondan ayarlara girerek yapılma tarzı şeyler çıkıyor. Ben istiyorum ki adam uygulamaya girdiğinde direk bizim site açılsın. Açıldığında ise bir yere tıkladığında yine uygulamadan asla ayrılmadan tıkladığı linke gidebilsin.

        Şuanki uygulamamda her şey hazır fakat kullanıcı uygulama içerisinde herhangi bri yer tıklayınca tarayıcı seçmesini istiyor uygulama. Tarayıcıyı zaten seçmişsek ise de direkt olarak tarayıcıya yönlendirme yapıp tıklanılan linki tarayıcı üzerinden açmaya çalışıyor.

        Kod olarak yardımınızı beklemekteyim. İyi günler.

  2. Merhaba , webpage not avaible hatası alıyorum 🙂 izin girdisi yaptım ama boyle bir hata olustu …

  3. merhaba mehmet bey.Sıkıntım şu araştırmaktan bi hal oldum sonrasında buraya yazıyorum.Uyuglamada herhangi bi siteye webview ile url veriyorum ve bağlanıyorum uygulama içinden.Sonrasında ise bağlanılan sitede video varsa oynatmaya çalışıyorum.ama hiç hareketlilik yok videoview diye birşeyler var ama ben öncelikle kullanıcının sitede dolaşmasını sonra ise beğendiği videoyu izlemesini istiyorum.Acaba böyle birşey mümkün mü yoksa ben nerde hata yapıyorum yardımcı olabilirseniz çok makbule geçecek….

  4. merhabalar çok iyi anlatmışsınız teşekkür ederim fakat bende bir problem var Internet i diye tanımlarken Internet i algılamıyor?

  5. Hocam local bir sayfayı nasıl ekliyoruz sitemize?

  6. Hocam, tarayıcıya yönlendirdikten sonra home tuşuna basıp tekrar girdiğimde beyaz ekran hatası alıyorum. Nasıl çözebilirim bu sorunu ?

    Ram i temizleyip tekrar girdiğimde uygulama çalışıyor, ancak çıkıp girince çalışmıyor.

  7. Hocam ben onCreateOptionsMenu yaratırken getMenuInflater().inflate(R.menu);
    burada menu kaynağını bulamıyor ben kendim yarattım yine göremedi sıkıntı nedir sizce??

    • o fonksiyonu @override etiketinden itibaren silin bir de öyle deneyin.

      • 2. sayfada Sadece title gibi bişey çıkıor beyaz onun dışında sayfa da herhangi bişey gözülmüyor anladığım kadarıyla kod çalışıyor ancak xml kısmında bi sıkıntı var appear olmuyor webpage teşekkürler…

  8. hocam merhabalar,
    ben uygulamamı çalıştırdığımda “web page not available” hatası alıyorum, yani uygulamada hata olmuyor ama yazdığım url load olmuyor. yardımcı olabilirseniz çok sevinirim.

  9. Merhaba hocam. Ben şeklinde AndroidManifest te kullanınca derleyici hata veriyor. yazmazsam derliyor ancak web sitesine bağlanamıyor. “Web page not available” diyor yani sanki internet yokmuş gibi davranıyor.

  10. Abi ben sitemin mobil uygulamasını yapmak istiyorum. Bu yüzden webview’in sadece benim sitemin linkini kullanmasını istiyorum bunu bana anlatabilir misin?

  11. Hocam merhaba herşeyi yapıyorum izinleride verdikten sonra apk olarak çıktı alıyorum fakat export ederken AndroidManifest dosyasından izinleri siliyor ve hiç izin olmadan çıkartıyor apkyı böyle oluncada internete bağlanmıyor uygulamam. Lüften yardım edebilir misiniz ?

  12. Hocam, bi okul projesi için ACİL yardıma ihtiyacım var..
    Ekrandaki butona basınca, internet (wifi bağlantısı) varsa butonun altındaki webview’de internet sayfası açılacak (örnek: http://www.google.com)
    internet yoksa wifi’yi açıp, internet gelene kadar bekleyip, sayfayı ondan sonra açacak..
    örnek bir kod verir misiniz acaba , teşekkürler

  13. Merhabalar, webView aracı siteyi görüntülerken ben sadece sitenin içerik kısmını görüntülesin istiyorum. Mesela sitedeki herhangi bir gönderinin sadece içeriğini alsın. Şuanda tarayıcılarda var olan “Okuyucu Görünümünde Aç” modu gibi bir şey yapsın istiyorum yani. Bu mümkün mü? Bunu nasıl yapabilirim?

  14. Hocam selam,

    Ben android studio kullanıyorum. Bende menü diye bir klasör yok ben kendim oluşturdum. İçerisine layout taki activiy_main i kopyaladım. Şuan uygulama açılıyor. Butona tıklıyorum hiçbir tepki vermiyor hata da vermiyor o şekilde bekliyor.

  15. Hocam selam,

    Sorunu çözdüm. Eksik yazmışım Click olayını kontrol edince buldum. Teşekkürler. Ama Android Studio da menü klasörü yok 🙂

  16. gaziemir çilingir

    emeğinize sağlık

  17. Şenol KAYHAN

    teşekkürler pek kaynak yok türkçe

  18. Merhabalar benim yapmak istediğim bir uygulama butonu yapıp uygulama butonuna tıkladığımda direkt olarak internet sitesine yönlendirmesi. Bunu nasıl sağlayabilirim?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir