腾讯X5内核支持:https://github.com/wendux/DSBridge-Android/tree/x5-3.0

Android studio配置如下:

  1. 添加 JitPack repository 到gradle脚本中

    allprojects {  repositories {   ...   maven { url 'https://jitpack.io' }  }}
2.
dependencies {   compile 'com.github.wendux:DSBridge-Android:x5-3.0-SNAPSHOT'}

使用事例如下:

(1)native调用js ,js处理完成之后,给native一个回调,通知完成了

  1. js端注册一个函数 供native调用

html>lang="en">    charset="UTF-8">    </span>native-call-js<span style="color:#e8bf6a;">    name="renderer" content="webkit">    http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">    name="viewport" content="width=device-width,initial-scale=0.5,user-scalable=no"/>            结果:    id="result">

2.native端调用js中注册的函数,传递目标参数,接受js的回调

/** * JsBridge demo * @author summer * * */public class MainActivity extends AppCompatActivity implements View.OnClickListener{    private DWebView mDWebView;    private Button mBtnAddValue;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();        initEvent();        initWebView();    }    private void initEvent() {        mBtnAddValue.setOnClickListener(this);    }    private <T extends View> T getView(int id){        View view=findViewById(id);        return (T) view;    }    private void initWebView() {        DWebView.setWebContentsDebuggingEnabled(true);        mDWebView.loadUrl("file:///android_asset/native-call-js.html");    }    private void initView() {        mDWebView=getView(R.id.webview);        mBtnAddValue=getView(R.id.btn_add_value);    }    @Override    public void onClick(View v) {        switch (v.getId()){            case R.id.btn_add_value:                addValue();                break;        }    }    /**     * native 调用js的方法,     * js最后在将处理的结果回调给native     *     * */    private void addValue() {     mDWebView.callHandler("addValue", new Object[]{1, 2}, new OnReturnValue() {         @Override         public void onValue(Integer integer) {             Toast.makeText(MainActivity.this ,integer+"", Toast.LENGTH_SHORT).show();         }     });    }}

测试成功

2.js调用native

同理,在native中注册一个函数供js调用,native处理完成之后,将结果回调个js,通知js本次处理完成

native注册一个函数,供js调用,为了便于管理,将函数封装在一个类中:

/** * native注册函数,供js调用 * @author summer */public class JsApi {    //同步    @JavascriptInterface    public String testSyn(Object msg)  {        return msg + "syn call";    }    //异步回调    @JavascriptInterface    public void testAsyn(Object msg, CompletionHandler handler){        handler.complete(msg+" [ asyn call]");    }}

activity配置:

public class JsCallNativeActivity extends AppCompatActivity {    private DWebView mDWebView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_js_call_native);        initView();        initData();    }    private void initData() {// set debug mode        DWebView.setWebContentsDebuggingEnabled(true);        mDWebView.addJavascriptObject(new JsApi(), null);        mDWebView.loadUrl("file:///android_asset/js-call-native.html");    }    private void initView() {        mDWebView=getView(R.id.dwebview);    }    private <T extends View> T getView(int id){        return (T)findViewById(id);    }}

js调用native方法:

html>lang="en">    charset="UTF-8">    </span>js-call-native<span style="color:#e8bf6a;">    name="renderer" content="webkit">    http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">    name="viewport" content="width=device-width,initial-scale=0.5,user-scalable=no"/>            class="btn" οnclick="callSyn()">Synchronous callclass="btn" οnclick="callAsyn()">Asynchronous call

so easy~~~

DsBridge的更多用法,可以参考官方demo.

DsBridge github:

https://github.com/wendux/DSBridge-Android/tree/x5-3.0

更多相关文章

  1. Android(安卓)Wifi模块分析(三)
  2. Android中dispatchDraw分析
  3. Android四大基本组件介绍与生命周期
  4. Android(安卓)Service AIDL
  5. Android调用天气预报的WebService简单例子
  6. android打电话发短信
  7. android 拨打紧急号码,通话时开启免提功能实现
  8. android 音效处理 (2)
  9. Android调用.NET Webservice报org.ksoap2.serialization.SoapPri

随机推荐

  1. 换一种方式理解 Android协程
  2. Android(安卓)SlidingMenu 的实现
  3. android下数据库SQLite
  4. android创建txt文件,读取txt文件内容
  5. Android录音上————AudioRecord实现录
  6. android之Handler整理
  7. android客户端与服务端交互的工具类
  8. android的短信发送全过程源代码分析
  9. 打开Android(安卓)Studio报错 "required
  10. Android(安卓)APK签名对比及说明