アンドロイド原生とH 5インタラクション
1.アンドロイドがH 5を呼び出す方法:
ここで、
2.H 5アンドロイド原生を呼び出す方法:
このうち
mWebView.loadUrl("javascript:webViewNotice(" + "'" + messageNum + "'" + ")");
ここで、
webViewNotice
はメソッド名であり、messageNum
はH 5に原生的に伝達されるパラメータである.安全のため、mWebViewは空にしたほうがいいです.2.H 5アンドロイド原生を呼び出す方法:
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true); // Javascript
settings.setUseWideViewPort(false);// webview
settings.setSupportZoom(true);//
settings.setLoadsImagesAutomatically(true); //
settings.setCacheMode(WebSettings.LOAD_DEFAULT); // webview
settings.setDomStorageEnabled(true); // DOM
webView.setWebChromeClient(new MyWebChromeClient());
webView.addJavascriptInterface(new JsObject(context), "javaToJs");
このうち
settings.setJavaScriptEnabled(true)
は、WebViewでjsを使用することを許可する必要があります.MyWebChromeClientはWebChromeClientのサブクラスです.javaToJs
はH 5に原生定義で使用されるオブジェクトであり、JsObjectコードは以下の通りである.public class JsObject {
public JsObject(Context context) {
this.mContext = context;
}
/**
*
*/
@JavascriptInterface
public void start(String flag, String param) {
}
/**
*
*/
@JavascriptInterface
public void getResult(String result) {
}
/**
*
*/
@JavascriptInterface
public void exit() {
}
}
start
、getResult
、exit
はいずれもH 5呼び出しを定義する方法である.各方法の@JavascriptInterface
は必須である.H 5の部分コードは以下の通りである.window.javaToJs.getResult("hello");