android 和 js 交互
阿新 • • 發佈:2017-06-06
load ron ces extend 互相調用 tex round ner ams
1.html代碼
<script type="text/javascript"> function javacalljs(){ document.getElementById("content").innerHTML = "JAVA調用了JS的無參函數"; } function javacalljswith(arg){ document.getElementById("content").innerHTML = (arg); } </script> <input type="button" value="點擊調用java代碼" onclick="window.android1.jsCall()" /> <input type="button" value="點擊調用java代碼並傳遞參數" onclick="window.android1.jsCall(‘paramsvalue‘)" />
2.java代碼
import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; import android.webkit.JavascriptInterface; importandroid.webkit.WebView; import android.widget.Toast; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; /** * Android 和 js 的互相調用 * 布局文件為 2個 button,一個WebView */ public class ActivityWebView extends Activity { @BindView(R.id.webView) WebView webView; @Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ble); ButterKnife.bind(this); webView.loadUrl("http://192.168.61.104:8080/update/android_js.html"); webView.getSettings().setJavaScriptEnabled(true);// 啟用javascript webView.addJavascriptInterface(this, "android1"); // android1 為html中的別名 } /** * 被js調用的函數 */ @JavascriptInterface public void jsCall() { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(ActivityWebView.this, "無參數的方法被js調用", Toast.LENGTH_SHORT).show(); } }); } /** * 被js調用的函數 jsCall * jsCall這個為html中的函數名字 * 必須加上 @JavascriptInterface 這個註解 */ @JavascriptInterface public void jsCall(final String params) { runOnUiThread(new Runnable() { @Override public void run() { new AlertDialog.Builder(ActivityWebView.this).setMessage(params).show(); } }); } @OnClick(R.id.btn0) public void btn0() { webView.loadUrl("javascript:javacalljs()");// 調用無參的js: javacalljs 為js的函數名 } @OnClick(R.id.btn1) public void btn1() { String params = "params";// 調用有參的js: javacalljswith 為js的函數名,params 為參數值 webView.loadUrl("javascript:javacalljswith(‘" + params + "‘)"); } }
參考: http://blog.csdn.net/leejizhou/article/details/50894531/
android 和 js 交互