1. 程式人生 > >android 和 js 交互

android 和 js 交互

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;
import
android.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; @Override
protected 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 交互