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