Tag Archive for button

Android WebView içerisinde JavaScript çalıştırmak

Öncelikle kısaca açıklamak gerekirse, WebView, Android uygulamalarında çevrim içi yada çevrimdışı bir web sayfası göstermeye yarayan arayüz elemanıdır.

Gösterilen sayfa denetimimiz dışında olabilir. Bu durumda sayfa içerisinde değişiklik yapılması gerektiğinde JavaScript kullanılabilir. JavaScript ile sayfa içeriği değiştirilebilir, sayfaya eklemeler yada sayfadan çıkarmalar yapılabilir. Aynı zamanda sayfadaki formlar üzerinde denetim yapılabilir yada sayfa sahibinin yazdığı fonksiyonlar çağrılabilir.

İlk önce WebView kullanan basit bir activity oluşturalım. Activity içerisinde websitesini görüntülemek için bir WebView, WebView de görüntülenen sayfada değişiklik yapmak için de bir Button bulunacak.

main.xml dosyası içeriği aşağıdadır.

<?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:orientation="vertical" >

<WebView
 android:id="@+id/webSite"
 android:layout_width="fill_parent"
 android:layout_height="400dp" />

<Button
 android:id="@+id/btnChange"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Change" />

</LinearLayout>

Activity sınıfımız aşağıdaki gibi olmalı.
package net.w3blog.webview.javascript;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

public class WebViewJavaScriptActivity extends Activity {
 private Button btnChange;
 private WebView webSite;

 private void init(){
 btnChange = (Button)findViewById(R.id.btnChange);
 webSite = (WebView)findViewById(R.id.webSite);
 }
 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 init();

 webSite.getSettings().setJavaScriptEnabled(true);

 webSite.setWebViewClient(new WebViewClient());
 webSite.setWebChromeClient(new WebChromeClient());

 webSite.loadUrl("http://google.com");
 }
}

Ekran görüntüsü aşağıdaki gibi olacaktır.

Şimdi görüntülenen websitesinin arkaplanını istersen Javascript ile değiştirebiliriz. bunun için main.xml dosyasında Buttonumuza onClick eventi ekleyelim ve fonksiyonumuzu yazalım.

 public void changeBackground(View v){
 webSite.loadUrl("javascript:document.bgColor='#333333'");
 }

Butona tıklandığında elde edilecek görünüm aşağıdaki gibi olmalı.

Uygulamanın tüm kodlarını buradan indirebilirsiniz.

Switch to our mobile site