肝はWebViewのaddJavascriptInterface()メソッド。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView web = (WebView)this.findViewById(R.id.webkitWebView1);
web.getSettings().setJavaScriptEnabled(true);
ClickEvent obj = new ClickEvent();
web.addJavascriptInterface(obj, "android");
web.loadUrl("file:///android_asset/index.html");
}
public class ClickEvent{
public void callEvent(){
//任意の処理
}
}
このような記述をするとClickEventクラスのインスタンスobjをjavascript上でandroidというオブジェクト名で起動できます。
具体的に、callEventメソッドを呼ぶにはこんな感じ。
android.callEvent();
この処理でUIの書き換えもインテントの発行もできます。
実態はWEBアプリでもネイティブアプリっぽく作れますね。
0 件のコメント:
コメントを投稿