Bu sitedeki yazıların tamamı F. Oğuz ÖZKEROĞLU isimli şahıs tarafından uydurulmuş bilgilerden oluşmaktadır.

Mayıs 15, 2011

android, java

15 yorum

WebView içinde bir web sayfasını göstermek için aşağıdaki kod kullanılıyor.

	WebView wv;
	wv = (WebView) findViewById(R.id.webview);
	wv.loadUrl("http://www.google.com");

Tabi bunu kullanabilmek için uygulamamıza internete erişim iznini vermemiz gerekiyor. Bunun için de AndroidManifest.xml dosyası içinde uygun yere aşağıdaki satırı ekliyoruz.

<uses-permission android:name="android.permission.INTERNET" />

Çalıştırdığımızda aşağıdaki gibi bir görüntü elde ediyoruz.

Buraya kadar bir sıkıntı yok zaten bilinen şeyler. Peki kendi hazırladığımız bir html sayfasını nasıl gösteririz?

Bunun için html içeriğimizi oluşturup bir stringe atıyoruz ve WebView içinde o stringi gösteriyoruz.

String strHtml = "<html><head></head>"
				+ "<body text=\"#444444\" bgcolor=\"#CCCCCC\">"
				+ "<br /><br /><center><h2>" + "Static html content in Android"
				+ "</h2></center></body></html>";

		wv.loadData(strHtml, "text/html", "UTF-8");

Artık internet erişimine gerek kalmadığı için Manifest dosyamızdan o izni kaldırabiliriz. Bu string içinde CSS de kullanılabilir. Bunlar yeterli değil, JavaScript de olsun diyorsanız aşağıdaki satırı WebView tanımlamasında sonra eklemeniz gerekir.

wv.getSettings().setJavaScriptEnabled(true);

Örnek uygulamada kullandığım java dosyası:

package com.oguz.example;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;

public class WebViewTest extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		getWindow().setFlags(
				WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN,
				WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
		setContentView(R.layout.webwiew_test);

		WebView wv = (WebView) findViewById(R.id.webkitWebView1);

		String strHtml = "<html><head></head>"
				+ "<body text=\"#444444\" bgcolor=\"#CCCCCC\">"
				+ "<br /><br /><center><h2>"
				+ "Static html content in Android</h2>"
				+ "<script type=\"text/javascript\">"
				+ "document.write(Date());</script>"
				+ "</center></body></html>";

		wv.getSettings().setJavaScriptEnabled(true);
		wv.loadData(strHtml, "text/html", "UTF-8");
	}
}

XML dosyası ise:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent">
	<android.webkit.WebView android:id="@+id/webkitWebView1"
		android:layout_width="fill_parent"
		android:layout_height="fill_parent">
	</android.webkit.WebView>
</LinearLayout>