Site icon Mobilhanem

Android WebView Kullanımı

Merhaba arkadaşlar mobilhanem.com üzerinden anlattığımız/yayınladığımız derslere Android de WebView Kullanımı ile devam ediyoruz. Android de webview yapısı uygulama içinde istenilen adresteki web sitesini açmak için kullanılır. En yaygın kullanımı budur. Bunun dışında WebView üzerinde HTML geliştirme de yapılabilir. Aslında daha basit anlatmak gerekirse uygulama içi browser diyebiliriz.

Biz bugün verilen linkteki yani kendi sitemiz olan mobilhanem.com u açmaya çalışacağız. Açmaya çalıştığımız site eğer responsive bir site ise çok güzel sonuçlar elde edebiliriz.Responsive değilse site otomatik olarak ekran boyutlarına küçülecektir. Zoom in ve zoom out kullanarak sitemizi büyüterek kullanabiliriz. Zaten bu bahsettiğim mobil browserlarda da aynı şekilde .

[wpdm_file id=16]

Arkadaşlar aslında internet ortamında webview konusunda çok fazla içerik var. Bizim bu dersi paylaşmamızın sebebi bu dersimizde oluşturduğumuz apk yi imzalayıp google playe yüklemeyi anlatacağız.Bundan sonraki dersimiz muhtemelenen Apk Yı Google Play e yüklemek olacaktır.

Arkadaşlar şimdi geçelim örnek uygulamamıza.Ben yine kod üzerinde gerekli açıklamaları yaptım.

Anasayfa.java

import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
 
public class Anasayfa extends Activity {
 
	private WebView webView;
	private CustomWebViewClient webViewClient;
	private String Url = "http://www.mobilhanem.com";
	ProgressDialog mProgressDialog;
	
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.anasayfa);
		
		mProgressDialog = new ProgressDialog(this);//ProgressDialog objesi oluşturuyoruz
		mProgressDialog.setMessage("Yükleniyor...");//ProgressDialog Yükleniyor yazısı 
		
		webViewClient = new CustomWebViewClient();//CustomWebViewClient classdan webViewClient objesi oluşturuyoruz
		
		webView = (WebView) findViewById(R.id.webView1);//webview mızı xml anasayfa.xml deki webview bağlıyoruz
        webView.getSettings().setBuiltInZoomControls(true); //zoom yapılmasına izin verir
        webView.getSettings().setSupportZoom(true);
        webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);   
        webView.getSettings().setAllowFileAccess(true); 
        webView.getSettings().setDomStorageEnabled(true);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(webViewClient); //oluşturduğumuz webViewClient objesini webViewımıza set ediyoruz
		webView.loadUrl(Url);

 
	}
	
	private class CustomWebViewClient extends WebViewClient {
		//Alttaki methodların hepsini kullanmak zorunda deilsiniz 
		//Hangisi işinize yarıyorsa onu kullanabilirsiniz.
		@Override  
	    public void onPageStarted(WebView view, String url, Bitmap favicon) { //Sayfa yüklenirken çalışır
	        super.onPageStarted(view, url, favicon);

	        if(!mProgressDialog.isShowing())//mProgressDialog açık mı kontrol ediliyor
	        {
	            mProgressDialog.show();//mProgressDialog açık değilse açılıyor yani gösteriliyor ve yükleniyor yazısı çıkıyor
	        }

	    }  
		
	    @Override  
	    public void onPageFinished(WebView view, String url) {//sayfamız yüklendiğinde çalışıyor.
	        super.onPageFinished(view, url);

	        if(mProgressDialog.isShowing()){//mProgressDialog açık mı kontrol
	            mProgressDialog.dismiss();//mProgressDialog açıksa kapatılıyor
	        }                
	    }  
	    
	    @Override
	    public boolean shouldOverrideUrlLoading(WebView view, String url) {
	    	// Bu method açılan sayfa içinden başka linklere tıklandığında açılmasına yarıyor.
	    	//Bu methodu override etmez yada edip içini boş bırakırsanız ilk url den açılan sayfa dışında başka sayfaya geçiş yapamaz
	       
	    	view.loadUrl(url);//yeni tıklanan url i açıyor
	        return true;
	    }
	    
	    @Override
	    public void onReceivedError(WebView view, int errorCode,String description, String failingUrl) {
	    	//BU method webview yüklenirken herhangi bir hatayla karşilaşilırsa hata kodu dönüyor.
	    	//Dönen hata koduna göre kullanıcıyı bilgilendirebilir yada gerekli işlemleri yapabilirsiniz
	    	//errorCode ile hatayı alabilirsiniz
	    	//	if(errorCode==-8){
	    	//		Timeout
	    	//	} şeklinde kullanabilirsiniz
	    	
	    	//Hata Kodları aşağıdadır...
	    	
	    	/*
	    	 *  /** Generic error 
		    public static final int ERROR_UNKNOWN = -1;
		    
		    /** Server or proxy hostname lookup failed 
		    public static final int ERROR_HOST_LOOKUP = -2;
		    
		    /** Unsupported authentication scheme (not basic or digest) 
		    public static final int ERROR_UNSUPPORTED_AUTH_SCHEME = -3;
		    
		    /** User authentication failed on server 
		    public static final int ERROR_AUTHENTICATION = -4;
		    
		    /** User authentication failed on proxy 
		    public static final int ERROR_PROXY_AUTHENTICATION = -5;
		    
		    /** Failed to connect to the server 
		    public static final int ERROR_CONNECT = -6;
		    
		    /** Failed to read or write to the server 
		    public static final int ERROR_IO = -7;
		    
		    /** Connection timed out 
		    public static final int ERROR_TIMEOUT = -8;
		    
		    /** Too many redirects 
		    public static final int ERROR_REDIRECT_LOOP = -9;
		    
		    /** Unsupported URI scheme 
		    public static final int ERROR_UNSUPPORTED_SCHEME = -10;
		    
		    /** Failed to perform SSL handshake 
		    public static final int ERROR_FAILED_SSL_HANDSHAKE = -11;
		    
		    /** Malformed URL 
		    public static final int ERROR_BAD_URL = -12;
		    
		    /** Generic file error 
		    public static final int ERROR_FILE = -13;
		    
		    /** File not found 
		    public static final int ERROR_FILE_NOT_FOUND = -14;
		    
		    /** Too many requests during this load 
		    public static final int ERROR_TOO_MANY_REQUESTS = -15;
	    	*/ 
	    	
	    }
	}
        public void onBackPressed() //Android Back Buttonunu Handle ettik. Back butonu bir önceki sayfaya geri dönecek
	{
	    if(webView.canGoBack()){//eğer varsa bir önceki sayfaya gidecek
	        webView.goBack();
	    }else{//Sayfa yoksa uygulamadan çıkacak
	        super.onBackPressed();
	    }
	}
	
	
 
}

Bu dersimde anlatmak istediklerim bu kadar.Anlamadığınız yada eklemek istediğiniz yer olursa çekinmeden yorum bırakabilirsiniz.

Bir dahaki dersimde Google Play e apk yüklemeyi anlatacağım. O zamana kadar kendinize iyi bakın .

Tüm Android Ders, Proje ve Kaynak Kodlar için tıklayınız.

[wpdm_file id=16] 1
Exit mobile version