放肆青春的博客
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)

放肆青春

一个前端菜鸟的技术成长之路
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)
  • 前端

    • 前端 概览
    • 前端汇总

    • front 博文

    • front 项目总结

    • front 高级

    • front tools

  • vue

    • vue 概览
    • vue 汇总

    • vue 博文

    • vue 项目总结

    • vue 高级

  • html

    • html 概览
    • html 汇总

    • html 博文

  • css

    • css 概览
    • css 汇总

    • css 博文

    • sass

    • less

  • js

    • javascript 概览
    • JS 汇总

    • ES6

    • JS 博文

    • JS 工具

  • node

    • node 概览
    • node 汇总

    • node 框架

    • node 博文

  • react

    • react 概览
    • react 汇总

    • react 博文

    • react 高级

  • 微信小程序

    • 微信小程序 概览
    • 微信小程序总结
    • 微信小程序文章
    • 微信小程序 博文

    • 微信小程序 高级

  • 微信公众号

    • 微信公众号 概览
    • 微信公众号总结
    • 微信公众号文章
  • 多端开发

    • 多端开发
    • dsbridge 概览
      • dsbridge
        • 简介
        • Javascript API 方法
        • Android 通过 DWebview 调用 JS 代码
        • dsbridge 原理
        • dsbridge 和 jsbridge 区别
        • DSBridge vs WebViewJavascriptBridge
    • jsbridge 概览
    • webview
    • uniapp

      • uniapp 概览
    • taro

      • taro 概览
    • flutter

      • flutter 概览
      • flutter 环境搭建
    • electron

      • electron 概览
  • front
放肆青春
2021-03-15

dsbridge 概览

# dsbridge

  • android github 官网 https://github.com/wendux/DSBridge-Android (opens new window)
  • IOS github 官网 https://github.com/wendux/DSBridge-IOS (opens new window)

# 简介

DSBridge 是 H5 页面与 Native 之间通信的桥梁,它有如下特点:

跨平台;同时支持 ios 和 android。

双向调用;js 可以调用 native, native 可以调用 js

不仅支持异步调用,而且页支持同步调用(dsbridge 是唯一一个支持同步调用的 javascript bridge)

支持进度回调,多次返回(常用于文件下载进度、计时器等)

Android 支持腾讯 x5 内核

三端易用;无论是前端还是 android 或 ios,使用都非常简单,极大的降低集成/学习成本

# Javascript API 方法

  1. bridge.call(method,[args,callback]) 功能:调用 Native api

method: api 函数名

args:参数,类型:json, 可选参数

callback(String returnValue):仅调用异步 api 时需要.

(1) 同步调用 支持同步是 DSBridge 的最大亮点之一。

(2) 异步调用

此时你需要传一个回调(如果没有参数,回调可作为第二个参数),当 api 完成时回调将会被调用,结果以字符串的形式传递。

  1. dsBridge.register(methodName,function) 注册 javascript API 供 Native 调用

注意点:为了兼容 Android 和 IOS ,DSBridge 对 Native API 的签名有两个要求

  1. 返回值必须是 String, 如果没有返回值,直接返回 null 就行

  2. API 的参数通过 JSONObject 传递,如果有些 API 没有参数,你也需要申明。

# Android 通过 DWebview 调用 JS 代码

  1. void callHandler(String method, Object[] args)

作用:用于调用没有返回值的 js 函数,没有参数时传 null 即可

  1. void callHandler(String method, Object[] args, CompletionHandler handler)

作用:用于需要返回值的场景,需要传递一个 CompletionHandler 接口对象,在 complete(String returnValue)方法中处理返回值即可。

  1. void evaluateJavascript(String script)

作用:用于执行任意 js 代码,内部已做版本兼容处理。

# dsbridge 原理

# dsbridge 和 jsbridge 区别

  1. 同步/异步支持

DSBridge 支持同步/异步调用

jsbridge 只支持异步调用方式

# DSBridge vs WebViewJavascriptBridge

  1. 平台支持

DSBridge 跨平台,同时支持 ios/android/osx

WebViewJavascriptBridge 并不支持 android,支持 ios/osx

  1. 易用性

DSBridge(ios 、android 和前端)三端易用

WebViewJavascriptBridge 用法比较繁琐

  1. 同步/异步支持

DSBridge 支持同步/异步调用

WebViewJavascriptBridge 前端只支持异步调用方式


https://www.jianshu.com/p/d967b0d85b97 (opens new window)


参考:跨平台 Js bridge 新秀-DSBridge Android 篇 (opens new window)

更新时间: 1/27/2022, 6:22:25 PM
多端开发
jsbridge 概览

← 多端开发 jsbridge 概览→

最近更新
01
前端权限管理
02-24
02
vue2指令
02-24
03
vue2 hook
02-24
更多文章>
Theme by Vdoing | Copyright © 2019-2022 放肆青春
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式