什么是 Javascript bridge

随着h5的不断普及及优化,以及移动端对动态化的需求越来越大,开发者经常需要在app中嵌入一些网页,然后会在web和native之间进行交互,如传递数据,调用函数,而连接web与native需要一个桥梁,通常称为javascript bridge,项目中选择一个好的javascript bridge也非常重要。

Javascript bridge现状

目前github上也有一些开源的,其中使用最广的非WebViewJavascriptBridge、JsBridge莫属,然而,最近刚开源了一个新项目DSBridge,号称最好用的javascript bridge。笔者仔细对比了一下,DSBridge分分钟秒杀所有啊。

下面是一篇DSBridge与WebViewJavascriptBridge的对比文章:DSBridge VS WebViewJavascriptBridge, 文章中各方面对比已经很详细了,在此,简单总结一下,以作记录。

DSBridge 和 WebViewJavascriptBridge相比的主要特点:

  1. DSBridge真正跨平台!原版WebViewJavascriptBridge只支持ios,只不过有人在android上也实现了和WebViewJavascriptBridge相同的前端调用协议,所以可以在ios/android上使用同一套js调用协议,但本身来讲,WebViewJavascriptBridge ios和android平台并非一家之作,所以也并没有官方提供跨平台的技术支持,而DSBridge官方同时支持ios和android。
  2. DSBridge支持同步调用!这一点秒杀其它所有,可谓一骑绝尘。同步在复杂一点的应用中有多重要,相信使用过node的都应该深有感触。原文中有仔细说明,请移步http://www.jianshu.com/p/d967b0d85b97。
  3. 三端友好; 无论是在ios、android或者 web,使用起来都非常简单优雅,这一点和WebViewJavascriptBridge相比,简直就是艺术。
  4. DSBridge为国人项目,有详细中文文档和问题反馈渠道。

其它

DSBridge虽刚刚开源,比较年轻,不像WebViewJavascriptBridge和javascript bridge那样有着多年以来积累的用户,目前知名度也并不高,但就github和作者博客来看,目前已有一批用户在使用,反馈都很不错,作者对于反馈都能及时回应,最近github上 android版的英文文档也已经补上,DSBridge需要一个宣传和用户积累的过程。DSBridge的测试覆盖非常全,根据github上的最新更新记录,增加了压力测试,在异步连续调用1万次的情况下DSBridge依然坚挺!ios上支持ios7以上,同时允许自由选择WKWebView和UIWebview,而Android端相对来说要简单一些,相信你完全可以看懂其源码。

DSBridge Github地址:

iOS: https://github.com/wendux/DSBridge-IOS
Android: https://github.com/wendux/DSBridge-Android

混合开发之DSBridge(同时支持Android和iOS)的更多相关文章

  1. Android混合开发之WebView与Javascript交互

    前言: 最近公司的App为了加快开发效率选择了一部分功能采用H5开发,从目前市面的大部分App来讲,大致分成Native App.Web App.Hybrid App三种方式,个人觉得目前以Hybri ...

  2. Android混合开发之WebView使用总结

    前言: 今天修改项目中一个有关WebView使用的bug,激起了我总结WebView的动机,今天抽空做个总结. 混合开发相关博客: Android混合开发之WebView使用总结 Android混合开 ...

  3. Android混合开发之WebViewJavascriptBridge实现JS与java安全交互

    前言: 为了加快开发效率,目前公司一些功能使用H5开发,这里难免会用到Js与Java函数互相调用的问题,这个Android是提供了原生支持的,不过存在安全隐患,今天我们来学习一种安全方式来满足Js与j ...

  4. .NET 开源了,Visual Studio 开始支持 Android 和 iOS 程序编写并自带 Android 模拟器

    .NET 开源了,Visual Studio 开始支持 Android 和 iOS 程序编写并自带 Android 模拟器 北京时间今天凌晨的 Connect(); 大会上,多少程序员的假想成为现实. ...

  5. IOS JPush 集成步骤(极光远程推送解决方案,支持android和iOS两个平台)

    ●  什么是JPush ●  一套远程推送解决方案,支持android和iOS两个平台 ●  它能够快捷地为iOS App增加推送功能,减少集成APNs需要的工作量.开发复杂 度 ●  更多的信息,可 ...

  6. [RN] React Native 图片保存到相册(支持 Android 和 ios)

    React Native 图片保存到相册(支持 Android 和 ios) 原理: IOS用 RN自带的 CameraRoll, Android 使用 不成功,需要 react-native-fs  ...

  7. 同时支持Android 和 ios 投屏到电脑的软件,Support Android and ios screen shrare to PC - 希沃授课助手

    最近学校由粉笔黑板更换了智慧电子黑板,然后发现了一个好玩的软件. 感谢希沃公司的开发: 希沃授课助手,这是一款同时支持Android 和 ios 投屏和远程控制的. 效果很流畅,非常赞

  8. Android开发之旅3:android架构

    引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我们对android有了个大致的了解,知道如何搭建andr ...

  9. iOS 混合开发之 Cordova 实践

    在15年时,之前公司使用 Cordova 做混合开发使用,后来公司没有用到了,现在重新记录下. Cordova (官网:http://cordova.apache.org/)简介: Apache Co ...

随机推荐

  1. HDU 1264 Counting Squares (线段树-扫描线-矩形面积并)

    版权声明:欢迎关注我的博客.本文为博主[炒饭君]原创文章,未经博主同意不得转载 https://blog.csdn.net/a1061747415/article/details/25471349 P ...

  2. SQL 中nvarchar和varchar到底能存多少汉字和英文

    实践出真知,在SQL中,nvarchar(50)表示汉字和英文都是50,varchar(50)汉字25,英文50

  3. linux主次设备号【转载】

    一个字符设备或者块设备都有一个主设备号和次设备号.主设备号和次设备号统称为设 备号.主设备号用来表示一个特定的驱动程序.次设备号用来表示使用该驱动程序的各 设备.例如一个嵌入式系统,有两个LED指示灯 ...

  4. 【转】Jmeter之短板以及建议解决方案

    随着JMeter的应用,发现JMeter的局限性越来越多,急需进一步扩展改进. 一.几百兆的sample 日志解析出现OutOfMemory 最近的几个项目都是Java sample 日志,应用都是高 ...

  5. mysql索引之一:索引基础(B-Tree索引、哈希索引、聚簇索引、全文(Full-text)索引区别)(唯一索引、最左前缀索引、前缀索引、多列索引)

    没有索引时mysql是如何查询到数据的 索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储10 ...

  6. Java-Runoob:Java 数组

    ylbtech-Java-Runoob:Java 数组 1.返回顶部 1. Java 数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 语言 ...

  7. 安装nagios检测hadoop

    Nagios是常用的系统监控工具,提供了很多基本服务的监控脚本,如HTTP,MYSQL等,同时具有不错的可扩展性,自己可定制针对特定参数的监控脚本以及报警的方式. 我现在有三台机器:192.168.0 ...

  8. 第一章 安装ubuntu

    最近正在研究hadoop,hbase,准备自己写一套研究的感研,下面先讲下安装ubuntu,我这个是在虚拟机下安装,先用 文件转换的方式安装. 1:选择语言:最好选择英文,以免出错的时候乱码 2:选择 ...

  9. Ajax显示隐藏

    $(function(){ $('#search').click(function(){ if($(".search_div").is(":visible")) ...

  10. .NET中使用unity实现aop

    Unity是一款知名的依赖注入容器,其支持通过自定义扩展来扩充功能.在Unity软件包内默认包含了一个对象拦截(Interception)扩展定义.本篇文章将介绍如何使用对象拦截功能来帮助你分离横切关 ...