# 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)
我的微信公众号,欢迎大家扫一扫。
