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] 7