js代码:
<span style="font-size:18px;"><script type="text/javascript">
function testAlert(){
alert("弹出框");
}
function testConfirm(){
var r = confirm("确认框");
alert(r);
}
function testPrompt(){
var r =prompt("输入框","tom");
alert(r);
}
function testJscallJava(){
javascript:window.jsCallJava.toast("我来自js");
}
function testJavacallJs(msg){
alert(msg);
}
</script>
</head>
<body>
<input type="button" οnclick="testAlert();" value="testAlert" /> <br />
<input type="button" οnclick="testConfirm();" value="testconfirm" /> <br />
<input type="button" οnclick="testPrompt();" value="testPrompt" /> <br /></span>
<span style="font-size:18px;"><input type="button" οnclick="testJscallJava();" value="testJscallJava" /> <br />
</body>
</html></span>
android代码:
<span style="font-size:18px;">public class MainActivity extends Activity {
private WebView webView;
@SuppressLint("JavascriptInterface")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/jstest.html");
WebSettings settings = webView.getSettings();
//webVIew是否支持js
settings.setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient(){
/* (non-Javadoc)
* @see android.webkit.WebChromeClient#onJsAlert(android.webkit.WebView, java.lang.String, java.lang.String, android.webkit.JsResult)
*/
@Override
public boolean onJsAlert(WebView view, String url, String message,
JsResult result) {
// TODO Auto-generated method stub
return super.onJsAlert(view, url, message, result);
}
});
//js调用java
//添加暴露给js的接口//参数一:object对象,实现要被js调用的方法;参数二:暴露给js的接口名
webView.addJavascriptInterface(new Object(){
@android.webkit.JavascriptInterface//4.0之后要加这个注解
public void toast(String str){
Toast.makeText(MainActivity.this, str, 0).show();
}
}, "jsCallJava");
}
//点击按钮,调用js方法
public void callJs(View v){
webView.loadUrl("javascript:testJavacallJs('"+"java传过来的"+"')");
}
}</span>