Android WebView kullanımı ve internet sitesini görüntüleme

Arif Ceylan/ Aralık 15, 2012/ Android Programlama/ 41 comments

Uygulamanızın içerisinde webview kontrolü kullanarak istediğiniz internet sitesini görüntületebilirsiniz. İnternet sitenizi de jquery-mobile kullanarak hazırladığınızda görünümü de gayet güzel olacak ve uyumlu bir şekilde çalışacaktır. Böylece İnternette çalışan bir uygulama da yapmış olursunuz.

Yeni bir proje oluşturuyoruz.

Webview nesnesini layoutumuza sürükleyelim. Sağ tıklayıp edit id ile idsini tarayici yapalım.

Src dosyasımızı açıp kodlarımızı yazalım.

package com.ceylan.webviewornek;

import android.app.Activity;

import android.os.Bundle;

import android.webkit.WebView;

import android.webkit.WebViewClient;

public class WebviewornekActivity extends Activity {

/** Called when the activity is first created. */

WebView tarayici;

//tarayıcı referansını oluşturalım.

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

tarayici=(WebView)findViewById(R.id.tarayici);

//tarayıcımızı tanıtalım.

tarayici.getSettings().setJavaScriptEnabled(true);

//javascriptleri çalıştırmasını sağlayalım.

tarayici.setWebViewClient(new WebViewClient());

//bu kodu yazmadığımız takdirde telefonun tarayıcısında açıyor...
tarayici.setWebChromeClient(new WebChromeClient());
//bu kod youtube tarzı sitelerde videoyu oynatması için. Eski sürüm androidlerde çalışmayabilir...

tarayici.loadUrl("http://www.arifceylan.com");

//bir urlyi çağırmasını istiyoruz.

//loaddata metodu ile html kodlarını çalıştırmak da mümkün...

}

}

Kodlarımızı yazdığımızda uygulamamızı çalıştırdığımızda sayfanın görüntülenemediğini göreceğiz. Çünkü internet iznini ayarlamadık. Androidmanifest dosyasına girip uses-sdklı etiketin altına veya application etiketinin üstüne;

<uses-permission android:name="android.permission.INTERNET" />

Kodunu yapıştıralım. İnternet iznini de halletmiş olduk.

Uygulamamızı çalıştırabiliriz.

Responsive Design özellikli internet sitemiz de gördüğünüz gibi ekrana sığacak bir şekilde görüntülenebilmektedir.

İyi çalışmalar.

Gelen arama terimleri:

  • android webview kullanımı
  • android projesine resim ekleme
  • android system webview nedir
  • android örnekleri
  • android örnek projeler
  • espiye köyleriyle birlikte nufusu kac
  • çepniler
  • giresun dereli kiziltas
  • android sistemi webview nedir
Share this Post

41 Comments

  1. Androidmanifest dosyasına girip uses-sdklı etiketin altına;

    Kodunu yapıştıralım. İnternet iznini de halletmiş olduk.

    Bu ikisi arasında hiçbir kod görüntülenmiyor.

      1. Manifest dosyasını açıp Permission sekmesinden android.permission.INTERNET ‘i ekleyip sorunumu hallettim.

    1. silinmiş yanlışlıkla. bilgi verdiğin için teşekkürler ekleme yaptım 😉

  2. selamlar webview içinde http live streaming linki ekliyorum. fakat bunu telefon üzerinden çağırmasını istiyorum ancak app dışına çıkmadığı için video player açmıyor.

    tarayici.setWebViewClient(new WebViewClient());

    //bu kodu yazmadığımız takdirde telefonun tarayıcısında açıyor…

    tarayici.loadUrl(“http://www.arifceylan.com”);

    burada nasıl bir if döngüsü yapmalıyız ki 1 linki hariç tutsun:)
    teşekkürler

  3. arif hocam burada hata veriyor setContentView(R.layout.main); ne yapmam lazım.

    1. verdiği hata nedir? Layoutu çağıran kod o kısım. Hatta otomatik oluşturuluyor siz yazmıyorsunuz…

  4. Dogruyu söylemek gerekirse Androidin Resmi sitesinde bile böyle güzel anlatmıyor teşekkürler

  5. öncelikle kolay gelsin. vermiş olduğunuz bilgiler ve örnekler çok güzel. benim küçük bir sorum olacaktı, verdiğiniz kodlar ile istediğim web sayfasını programımda gösterebildim fakat bazı sitelerde Türkçe karakterleri göstermiyor, yardımcı olursanız çok sevinirim. Türkçe karakterlerin olduğu yerler boş çıkıyor aynı sayfaya opera ile girdiğimde ise sorun yok. şimdiden teşekkür ederim kolay gelsin.

    1. Merhaba teşekkürler. şu ara deneme imkanım olmadığı için bilgi veremiyorum. Fırsat bulduğumda kontrol ederim. Sitelerin adresini de verirseniz iyi olabilir. Çünkü kendi sitemde türkçe karakterlerde sorun yoktu resimdeki örnekte de görülüyor. Muhtemelen o dediğini sitelerdedir sorun. iyi çalışmalar.

      1. merhabalar Arif bey, benim de tahminim site yüzünden muhtemelen utf-8 gibi bir ilave bir bilgi belirtmemizi istiyor (mesela parametre gibi, bilmiyorum anlatabildim mi) ama örnek bir kod Türkçe dokümanlarda bulamadım. yabancı dokümanlarla da pek aram yok :(, google translate ile de tam anlaşılır bir bilgiye ulaşamadım. çok ilginç bir şey araştırmalarıma rağmen bir sonuç el de edemedim. site ismini de direk vermek istemiyorum sonuçda sadece çalışanım 🙂 , mahsuru yok sa bir mail adresi verebilirseniz yaptığım kodlarla bir gönderebilirim.

        1. iletişim bölümünden yazabilirsiniz.

  6. Bu kodlarla kendi uygulamamı yapıp google play hesabıma yükledim sağolasın javascriptleri çağırma kısmı işime yaradı

    1. işine yaramasına sevindim 😉 iyi çalışmalar.

  7. Merhaba, vewview içinde gösterilecek olan websitesinin yazı font büyüklüğünü nasıl ayarlayabilirim ?
    webview içinde gösterilecek olan HTML nin gereksiz kısımlarının görünmesini nasıl engelleyebilirim ?

    Teşekkürler.

  8. teşekkürler fatih bey iyi bir çalışma olmuş.

  9. Arif hocam, kodları sorunsuz çalıştırmak gerçekten benim için dert oluyor. İnanın şu kodları bile çalıştırana kadar canım çıktı ama sonunda çalıştırdım. Sürekli çıkan ampüllü uyarılardan nefret eder oldum 🙂

    ” Using setJavaScriptEnabled can introduce XSS vulnerabilities into you application, review carefully.” bu uyarıyı

    tarayici.getSettings().setJavaScriptEnabled(true);

    satırında alıyorum. İngilizce var ama ne dediğini anlamış değilim. Sıkıntı tam olarak nedir? Sorunsuz çalışıyor ama yine de bir sıkıntı olur belki. Teşekkürler şimdiden..

    1. javascripti aktif ederseniz Xss saldırıları olabilir diye uyarıyor. Annotation kullanarak çözmüşler şu linkte. http://www.stevenmarkford.com/android-warning-using-setjavascriptenabled-can-introduce-xss-vulnerabilities-into-you-application-review-carefully/
      Denemedim bi deneyin isterseniz. iyi çalışmalar.

  10. Evet hocam ben de o adresi buldum @SuppressLint(“SetJavaScriptEnabled”) komutunu uyarıya tıklayınca ekledi ve uyarı kalktı. Teşekkürler, anlatımınız çok sıralı ve açıklayıcı..

    1. Teşekkürler 😉

  11. setContentView(R.layout.main);
    burada hata veriyor hocam “main cannot be resolved or is not a field” hatası veriyor nasıl düzeltebilirim yardımcı olur musun ?

    1. main.xml duruyor mu? ondan kaynaklanan bi sorun sanırım. bu kodlar içerisinde pek main.xml kaynaklı hata verebilecek bi durum yok. olmadı yeni proje oluştur önce çalıştır sonra değişiklikleri yap vs. net bişey söyleyemeyeceğim.

  12. Hocam kolay gelsin ben yaptım fakat lınke tıklayınca android browser acıyor bunu engellemenın yolu yokmu twıtterle baglan dedıgımde browser acılıyor ve ordan devam edıyor ısleme

  13. Hocam bilgi için teşekkür ederim. Bir sorum olacakti. En uygulamayi jQuery ile tasarladigim video siteme uyguladim. Videolari youtubeden çekiyorum. Yalniz arka plana geçtiğinde video duruyor.nasil devam ettorebilirim?

  14. uygulama durduruldu hatasının sebebi nesir

    1. hata çok genel. logcat içerisinden hatanın nerde olduğuna bakmak gerekiyor.

  15. Merhaba hocam. Ben webview ile siteyi açıyorum. ancak bu sitede bulunan .pdf formatında bir dosya var. indir butonuna tıklayınca dosyayı indirip görüntülemem gerekiyor. bunu nasıl yapabilirim

  16. Merhaba Fatih Bey. Benim proje harici bir sorum olacaktı. (main cannot be resolved or is not a field) Tarzında bir hata alıyorum ve bu yeni açtığım projelerde dahi oluyor. Bir türlü düzeltemiyorum. Yabancı kaynaklı açıklamalar var. Projeyi daha açar açmaz böyle bir hatayla karşılaşıyorum ve üstelik main_activity bölümünü de değiştirmemi istiyor, “activity_list_item” ile. Bu her açtığım projede sorun olarak karşıma çıkıyor ve heves falan bırakmıyor. Araştırmaktan ciğerim soldu inanın. Lütfen yardımcı olun. İsterseniz ss dahi gönderebilirim. Programı sildim yeniden kurdum yine aynı, yine aynı.

    1. Projenizde
      import android.R; şeklinde bir import varsa onu ;
      import sizinuygulamanız.R; şeklinde değiştirebilirsiniz.
      (bu uygulama için örnek: com.ceylan.webviewornek.R;)
      Bu şekilde değiştirerek bazıları çözüm yolu bulmuşlar.

  17. Uyku sersemliği, Arif Bey, isim yanlışlığı oldu, kusura bakmayın.

  18. merhaba arif 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….

    1. Merhaba.
      tarayici.setWebChromeClient(new WebChromeClient());
      kodu ile tarayıcı içerisinde youtube tarzı videoların oynatılmasını sağlayabilirsiniz.
      Eski sürüm androidlerde çalışmayabilir…
      Tam ekran görüntüleme olayı için de webchromeclientin bazı metodlarını override edip düzenlemeniz gerekiyor. Belki başka bir yazıda…

  19. Benzer başka bir siteden kendimi android üzerinde geliştirmeye çalışıyodum bugün saat 10dan 3e kadar uğraştım birşey yapamadım anlatılanlardan , biraz daha araştırma yapınca bu siteyi keşfettim gayet güzel anlatım var , bir uygulama yapabildim 1 saat gibi kısa bir sürede . Site kalitesini gösteriyor , Arif hocama ve emeği geçen herkese teşekkürler

    1. Teşekkürler 😉

  20. teşekkür ederim

  21. Çok Teşekkür Ederim En İyi Anlatımı Burada Buldum.

  22. webview ile a tagına tel:05321234567 verdiğimizde arama yapmıyor nasıl yaptırabiliriz? teşekkürler

  23. Arif Bey,

    Uygulama sorunsuz bir şekilde çalışıyor fakat ben, siteyi uygulamanın içerisinde açmasını istiyorum. Böyle yapınca uygulamayı açınca tarayıcıya yönlendiriyor. Bunun için ne yapmam gerekiyor?

  24. Merhaba bende bu siteden bakarak çalıstırabildim uygulamayı çok teşekkürler.Ama http://www.___.com olan sayfaları açıyor benim istediğim “ornek.html” gibi bilgisayarda kayıtlı olan html sayfalarını görüntülemek .Onu nasıl yapabilirim.

  25. Merhaba. Teşekkürler. Uğulamam tamamen programlanmıştır. Ama linklere tıkladığım zaman tarayıcıda açılyordu. ben tarayıcıda değil de, uyğulamamın kendisi içerisinde açılmasını sağlamak istiyordum. Bu makaleden sonra import android.webkit.WebViewClient; aracılığı ile yapa bildim. Teşekkürler makale için. Sayenizde yapa bildim.

  26. Hocam Webview İle Hazırladığımız Uygulamanın Her Linkine Tıklandığında İnternet Varmı Yokmu Kontrol Ettirmek İstiyoruz Bunu Nasıl Yapabiliriz.

Arif Ceylan için bir cevap yazın Cevabı iptal et

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*