1.app/src/main/assets目录下添加文件javascript.html
<html>
<script language="javascript">
/* This function is invoked by the activity */
function androidUseJs(result) {
alert(result);
}
</script>
<body>
<button onClick="window.method.jsUseAndroid()">
Click me!
</button>
</body>
</html>
2.新建activity类(xml 布局:一个button:id:btn 一个webView:id:web)
public class JsWebViewActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_js_web_view);
Button btn = (Button) findViewById(R.id.btn);
final WebView web = (WebView) findViewById(R.id.web);
//android调用JS方法 红色
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
web.setWebChromeClient(new WebChromeClient());
//JS调用android方法 蓝色
web.addJavascriptInterface(new DemoJavaScriptInterface(), "method");
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(JsWebViewActivity.this,"androidUseJs",Toast.LENGTH_SHORT).show();
web.loadUrl("javascript:androidUseJs(" + view.getId() + ")");
//如果传字符串 需要加上单引号 web.loadUrl("javascript:androidUseJs(‘" + view.getId() + "‘)");
}
});
web.loadUrl("file:///android_asset/javascript.html");
}
final class DemoJavaScriptInterface {
DemoJavaScriptInterface() {
}
@JavascriptInterface
public void jsUseAndroid() {
Toast.makeText(JsWebViewActivity.this,"jsUseAndroid",Toast.LENGTH_SHORT).show();
}
}
}