Android

Android – WebView Kullanımı

Uygumanızdan çıkmadan bir web sayfasına yönlendirme yapmak ya da hazırladığınız bir html sayfayı uygulamanız içerisinde açmak gibi işlemler için WebView‘i kullanabilirsiniz.

WebView Nedir?

WebView, hem uzak sunuculardaki web sayfalarını hem de uygulamanız içerisine koyduğunuz html sayfalarını görüntüleyebileceğiniz bir bileşendir. Bu bileşeni kullanarak uygulamanızdan çıkmadan web sayfalarını görüntüleyebilirsiniz.

Şimdi, basit bir uygulama ile WebView‘in nasıl çalıştığını görelim. Uygulamamız ile webview içerisinde bir web sayfasını açalım.

Tasarım

Layout klasörü içerisinde yer alan activity_main dosyamızın içerisine WebView bileşenini koyuyoruz.

WebView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

Kodlama (MainActivity)

MainActivity sınıfımızın içerisine de aşağıdaki kodları yazıyoruz.

package org.kod5.android;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class MainActivity extends Activity {

	private WebView webView;

	@Override
	protected void onCreate(Bundle savedInstanceState) { // Bu metod uygulama açıldığında çalıştırılan metod.

		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// webView'i tasarımdakiyle bağlıyoruz.
		webView = (WebView) findViewById(R.id.webView1);

		// webView'i JavaScript kodlarını çalıştıracak şekilde set ediyoruz.
		webView.getSettings().setJavaScriptEnabled(true);

		// Sayfanın yüklendiğinin anlaşılması için ProgressDialog açıyoruz.
		final ProgressDialog progressDialog = ProgressDialog.show(this, "KOD5",
				"Sayfa Yükleniyor...", true);

		webView.setWebViewClient(new WebViewClient() {

			// Sayfa Yüklenirken bir hata oluşursa kullanıcıyı uyarıyoruz.
			public void onReceivedError(WebView view, int errorCode,
					String description, String failingUrl) {
				Toast.makeText(getApplicationContext(), "Sayfa Yüklenemedi!",
						Toast.LENGTH_SHORT).show();
			}

			// Sayfanın yüklenme işlemi bittiğinde progressDialog'u kapatıyoruz.
			@Override
			public void onPageFinished(WebView view, String url) {
				super.onPageFinished(view, url);
				if (progressDialog.isShowing())
					progressDialog.dismiss();
			}
		});

		//Web sayfamızın url'ini webView'e yüklüyoruz.
		webView.loadUrl("http://www.kod5.net");

	}
}

Kodlar içerisinde yer alan açıklama satırlarında, gerekli bazı açıklamaları yazdım. Bunlar dışında kodu incelersek;

  • ProgressDialog‘un kullanımını gördük. ProgressDialog, kullanıcıya bir işlem yapıldığının uyarısını vermek için kullanılır. Burada da sayfanın yüklendiğini belirtmek için kullandık. show() metoduyla açıp, dismiss() metoduyla kapattık.
  • WebViewClient sınıfı, web sayfasının handle edildiği sınıftır. Bu sınıf sayesinde;
    • Sayfa yüklenirken bir hata oluşursa bunu yakalayıp kullanıcıyı bilgilendirebiliyoruz.
    • Sayfa tamamen yüklendiği anda ProgressDialog‘u kapatabiliyoruz.

İnternet İzni (Android Manifest)

Uygulamamızın web sayfasını açabilmesi için cihazın internetini kullanması gerekiyor. Bu sebeple kullanıcı uygulamayı yüklerken kullanıcıdan internet kullanımı için izin almalıyız. Bu işlem için Android Manifest dosyamızın içerisine aşağıda gördüğünüz 10. satırı ekliyoruz.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.kod5.android"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />
    
    <uses-permission android:name="android.permission.INTERNET" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="org.kod5.android.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

Ekran Görüntüleri

Uygulamamız aşağıdaki gibi gözükmektedir.

Screenshot 2015-05-22 23.04.38

WebView’in daha birçok farklı kullanım alanı mevcut. Bu yazıda temel kullanımı için örnek uygulama hazırladık. İlerleyen yazılarda farklı kullanımlarınıda göreceğiz.

Kaynak Kodlar

Uygulama dosyaları için: https://github.com/mursidyazar/Android-WebView.git

Benzer Yazılar

Android Görsel Bileşenler;

  1. TextView ve EditText
  2. ImageView
  3. Button ve StateListDrawable
  4. Toast
  5. ListView
  6. WebView
  7. Spinner
  8. CheckBox
  9. ProgressBar
  10. SeekBar

25 Yorum

Android – ImageView Kullanımı için bir yanıt yazın X