什么是 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

最新文章

  1. [WinAPI] 获取窗口句柄的几种方法
  2. Android中使用Notification实现宽视图通知栏(Notification示例二)
  3. python-virtualenv(多个独立开发环境)
  4. Curator Framework的基本使用方法
  5. MVP的PV模式与SC模式
  6. make file
  7. PoolMon 使用
  8. POJ1942——Paths on a Grid(组合数学)
  9. Unreal Engine4 蓝图讲解
  10. Git标签管理
  11. LED驅動芯片最大特點
  12. volatile举列说明const
  13. 从session实现机制分析模拟请求验证码的可行性(转)
  14. iOS开发 字符串的转化 小技巧
  15. PL/SQL 实现行列转换
  16. C++ set用法以及迭代器用法
  17. nginx配置支持http2
  18. Flask入门第二天
  19. 【C/C++】c文件重点总结
  20. Python高级有关的题目

热门文章

  1. video4linux(v4l)使用摄像头的实例基础教程与体会(转)
  2. Linux环境安装配置Swftools
  3. 请求MWS报错401:Access Denied
  4. foreach(PHP学习)
  5. Zen Coding改名Emmet-功能更智能化
  6. 【Leetcode 338】 Counting Bits
  7. python中包和模块的使用说明
  8. linux 下java环境的配置
  9. Java复习——枚举与注解
  10. SQL、PL/SQL、DDL、DML、TCL介绍