# JavaScriptConnAndroid **Repository Path**: forezp/JavaScriptConnAndroid ## Basic Information - **Project Name**: JavaScriptConnAndroid - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-06-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JavaScriptConnAndroid 最近在做原生和js端的互调的功能,自己改了个demo,给大家讲解下。 先上js代码 ``` 方法调用基本流程测试
如果有数据返回,会显示在这儿
``` android webview 设置可用javascript ```java //设置编码 mWebView.getSettings().setDefaultTextEncodingName("utf-8"); //支持js mWebView.getSettings().setJavaScriptEnabled(true); ``` android 调js ```java mBtn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mWebView.loadUrl("javascript:funFromjs()");//其中funFromjs()为js的方法 Toast.makeText(mContext, "调用javascript:funFromjs()", Toast.LENGTH_LONG).show(); } }); ``` js调原生,原生响应时间并回调数据 ```java mWebView.addJavascriptInterface(new Object(){ //注意4.4以后加注解,位置在这个方法名上面,鉴于很多这个的例子,瞎、、写注解位置,并需要下 //载积分写了这个 @JavascriptInterface public void invoke(String name ,String t,String callback) { if(name.equals("testFunc")){ //其中t 为js带过来的数据 Toast.makeText(mContext, t,Toast.LENGTH_LONG).show(); String strJson = "{\"code\":122, \"msg\":\"1231\", \"data\":null}"; //回调数据给js 其中callback 为android 掉js 的方法名称。 mWebView.loadUrl("javascript:"+ callback +"('" + strJson + "')"); } // Toast.makeText(mContext, name, Toast.LENGTH_LONG).show(); } },"MfsJSBridge"); ``` 代码比较简单,最主要的是 @JavascriptInterface注解的位置大家注意下。 [源码下载](http://download.csdn.net/detail/forezp/9555368) 我的微信公众号,欢迎大家扫一扫。 图片名称