首先布局webview和button
//获取控件
webview = findViewById(R.id.webview);
button = findViewById(R.id.button);
WebSettings webSettings = webview.getSettings();
//设置js交互权限
webSettings.setJavaScriptEnabled(true);
//设置与允许js弹窗
webSettings.setJavaScriptCanOpenWindowsAutomatically( true);
//先载入js代码
//格式规定为:file:///android_asset/文件名
webview.loadUrl("file:///android_asset/javascript.html");
button点击事件
//点击事件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//通过handller发送消息
webview.post(new Runnable() {
@Override
public void run() {
// 注意调用的JS方法名要对应上
// 调用javascript的callJS()方法
webview.loadUrl("javascript:callJS()");
}
});
}
});
调用js的方法
// 由于设置了弹窗检验调用结果,所以需要支持js对话框
// webview只是载体,内容的渲染需要使用webviewChromClient类去实现
// 通过设置WebChromeClient对象处理JavaScript的对话框
//设置响应js 的Alert()函数
webview.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Alert");
builder.setMessage(message);
builder.setPositiveButton(R.string.app_name, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
});
builder.setCancelable(false);
builder.create().show();
return true;
}
});
注:把整理好的js.html导入自己创建好的main下assets包下