1, 在src/main 中创建文件夹 assets 文件夹
2, 在文件夹中添加 js.html
<html> <head> <meta charset="UTF-8"> <script> function callJs() { alert("Android 调用js 中的 callJs()方法"); } </script> </head> <body> 点击应用中的按钮, 显示网页中js 弹出的内容 </body> </html>3, 在布局页面中, 添加<WebView />
4, 在MainActivity.java 中
/** * 加载本地页面 -- 携带着js */ public class Main3Activity extends AppCompatActivity { private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); mWebView = (WebView) findViewById(R.id.web_view_id); //1, 加载网页 mWebView.loadUrl("file:///android_asset/js.html"); //2, 在当前应用中打开 mWebView.setWebViewClient(new WebViewClient()); //3, 设置支持js WebSettings webSettings = mWebView.getSettings(); webSettings.setJavaScriptEnabled(true);//设置支持js webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//设置允许js 弹出窗口 //4, 获取页面中的信息 mWebView.setWebChromeClient(new WebChromeClient(){ //TODO 得到页面中js 的输出信息 @Override public boolean onJsAlert(WebView view, String url, String message, final JsResult result) { //创建对话框 AlertDialog.Builder builder = new AlertDialog.Builder(Main3Activity.this); builder.setIcon(R.mipmap.ic_launcher); builder.setTitle("显示内容"); builder.setMessage(message); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { result.confirm();//确定一下 } }); builder.show(); return true;//返回 true : 不会弹出js 自己的内容 } }); } //点击显示js 的内容 -- 点击按钮, 触发js 中Alert , 执行 --- 调用js 中callJs() public void onClick(View view) { mWebView.loadUrl("javascript:callJs()"); } }
5, 添加网络权限