# JavaScriptInWebView **Repository Path**: geguo/JavaScriptInWebView ## Basic Information - **Project Name**: JavaScriptInWebView - **Description**: 在JavaScript中调用Android方法 通过webView进行交互 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2016-03-30 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #JavaScriptInWebView ## 添加步骤 ## ### 1、创建和js交互的Java对象 ### 在asset目录下保存js或者svg文件(文件路径:"file:///android_asset/china_low.svg") public class JavaScriptinterface { Context context; public JavaScriptinterface(Context context) { this.context=context; } // 在Android4.2以后需要注册; // 为了安全只有注册后的方法才能被调用 @JavascriptInterface public void showToast(String id){ Toast.makeText(context,"点击了"+id,Toast.LENGTH_SHORT).show(); } } > 注意:需要在js中调用的方法在4.2以后都要通过**@JavascriptInterface**进行注册才能使用 ### 2、在js代码中使用Android中的方法 ### ### 3、webView的配置 ### // 读取SVG文件方法 private void readHtmlFormAssets() { WebSettings webSettings = webView.getSettings(); // 设置Js代码可用 webSettings.setJavaScriptEnabled(true); webView.setBackgroundColor(getResources().getColor(R.color.gray_white)); //设置背景色为透明(0) // 设置webview中图片的大小,根据屏幕密度设置(这个比例是大概,不会算) webView.setInitialScale(9*mDensity/31); //参数:1 联通Android和Js的桥梁 2 对象的别名 webView.addJavascriptInterface(new JavaScriptinterface(this), "android"); webView.loadUrl("file:///android_asset/china_low.svg"); // 如果不设置这个,JS代码中的按钮会显示,但是按下去却不弹出对话框 webView.setWebChromeClient(new WebChromeClient(){}); }