package net.npaka.jsinterfaceex;
import android.app.*;
import android.os.*;
import android.view.*;
import android.webkit.*;
//JavaScriptとの連携
public class JSInterfaceEx extends Activity {
private WebView webView;//Webビュー
private Handler handler;//ハンドラー
//初期化
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//ハンドラーの生成
handler=new Handler();
//Webビューの生成
webView=new WebView(this);
WebSettings settings=webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setSavePassword(false);
settings.setSaveFormData(false);
settings.setSupportZoom(false);
webView.setWebChromeClient(new ChromeClient());
webView.addJavascriptInterface(new JSInterface(),"demo");
webView.loadUrl("file:///android_asset/demo.html");
setContentView(webView);
}
//JSインタフェース
public final class JSInterface {
//コンストラクタ
public JSInterface() {
}
//クリックイベントの処理
public void onClick() {
handler.post(new Runnable() {
public void run() {
webView.loadUrl("javascript:changeImage()");
}
});
}
}
//クロームクライアント
public final class ChromeClient extends WebChromeClient {
//アラートイベントの処理
@Override
public boolean onJsAlert(WebView view,String url,String message,JsResult result) {
android.util.Log.e("",message);
result.confirm();
return true;
}
}
}
|