Blog Single

WebView nedir ? ile başlayalım;

  • Bir uygulama içerisinde web sayfalarını görüntülemeye yarayan yazılımsal olarak programlama dili ile etkileşim sağlayarak ilgili kütüphaneler yardımı ile WebView adlı nesneyi ve miras aldığı özelliklerinden de yararlanabileceğiniz bir öğedir. WebView öğesi, Web sayfası görüntülemenin yanı sıra, miras aldığı özellikler olarak ise;
  • Bir önceki sayfaya dön, JavaScript'lere izin ver, Form Verilerini temizle, Sayfayı yeniden yükle gibi onlarca fonksiyonları bulunan bir nesnedir.
  • WebView nesnesi, isim olarak sadece Android'de kullanılmaz. WebView nesnesi ismini görsel arayüz (form) ve nesne tabanlı altyapı sunan yazılım dillerinde de görebilirsiniz. Örneğin: Android, C# Form Application vs.

Android ile WebView kullanımı yani, diğer bir isimle söyleyecek olursak Android ile Website görüntüleme örneğimize başlıyoruz;

  • Öncelikle projemizin ihtiyaçları olarak, internet bağlantısı ve internet bağlantısının kontrolü izinlerine ihtiyaç duyacağız.
  • AndroidManifest.xml dosyası içerisinde iken, aşağıdaki izinleri tanımlayınız;
    • uses-permission android:name=android.permission.INTERNET
    • uses-permission android:name=android.permission.ACCESS_NETWORK_STATE
  • Ardından WebView nesnesini hangi layout'da gösterecek iseniz, ilgili Layout View'a yeni bir WebView nesnesini Design görünümündeyken sürükleyerek ekleyiniz.
    • İlgili WebView nesnesinin parametreleri ve değerleri aşağıdaki gibi olsun;
    • android:layout_width=match_parent
      android:layout_height=match_parent
      android:id=@+id/webView1
      android:layout_alignParentRight=true
      android:layout_alignParentEnd=true
      android:layout_alignParentTop=true
      android:layout_alignParentLeft=true
      android:layout_alignParentStart=true
      android:scrollbars=none
  • İlgili Layout'un Activity class'ına gelip,
    • Global değişken olarak, aşağıdaki değerleri ekleyiniz.
      • private CustomWebViewClient webViewClient;
      • WebView webview;
    • Tekrar Activity nesnesi içerisinde onCreate methodu içerisinde olmamak şartı ile, Class içerisinde Global değişlenlerin hemen altına, aşağıdaki methodu oluşturup, internet kontrolünün denetimini sağlıyor olacağız.
      • public boolean networkConnection() {
                ConnectivityManager conMgr = (ConnectivityManager) getSystemService (Context.CONNECTIVITY_SERVICE);
                if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable() && conMgr.getActiveNetworkInfo().isConnected()) {
                    return true;
                }else{
                    return false;
                }
        }
    • Şimdi ise onCreate metodu içerisindeyken,
      • CustomWebViewClient webViewClient = new CustomWebViewClient(); //CustomWebViewClient classından webViewClient objesi oluşturuyoruz
      • webview = (WebView) findViewById(R.id.webView1);
      • webview.getSettings().setJavaScriptEnabled(true); //JavaScript kodları desteklensin mi ?
      • webview.getSettings().setBuiltInZoomControls(true); //zoom yapılmasına izin verir
      • webview.getSettings().setSupportZoom(true);
      • webview.setWebViewClient(webViewClient); //WebView nesnemize webViewClient objesini atıyoruz.
    • İnternet bağlantısı denetlemesi için, yine onCreate'de bir alt satıra;
      • if(networkConnection()){
           webview.loadUrl("http://serifgungor.com");
        }else{
           Toast.makeText(getApplicationContext(), "Bağlantı problemi oluştu", Toast.LENGTH_LONG).show();
           finish();
        }
    • Tekrar Activity Class'ı içerisinde, sadece bu class içerisinde kullanabileceğimiz WebViewClient kullanımı için bir Inner Class oluşturuyoruz.
      • private class CustomWebViewClient extends WebViewClient {
           public boolean shouldOverrideUrlLoading(WebView view, String url) {
              view.loadUrl(url);
              return true;
           }

        }

Örneğimizde kodlarınız sorunsuz duruma geldiğinde, ilgili web sayfasını görüntülüyor olmanız gerekecektir. Yararlı olması dileğiyle...

Bu makaleyi paylaşın:
İstanbul'da yaşıyorum.Web üzerinde Frontend/Backend Geliştirmenin yanı sıra, Android Geliştirme, PHP/ASP.NET, C# Yazılım Uzmanlığı ve Java konuları işliyorum. Kod Şiirdir, onları seviyorum.

Bir yorum bırakın