混合开发之DSBridge(同时支持Android和iOS)
什么是 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相比的主要特点:
- DSBridge真正跨平台!原版WebViewJavascriptBridge只支持ios,只不过有人在android上也实现了和WebViewJavascriptBridge相同的前端调用协议,所以可以在ios/android上使用同一套js调用协议,但本身来讲,WebViewJavascriptBridge ios和android平台并非一家之作,所以也并没有官方提供跨平台的技术支持,而DSBridge官方同时支持ios和android。
- DSBridge支持同步调用!这一点秒杀其它所有,可谓一骑绝尘。同步在复杂一点的应用中有多重要,相信使用过node的都应该深有感触。原文中有仔细说明,请移步http://www.jianshu.com/p/d967b0d85b97。
- 三端友好; 无论是在ios、android或者 web,使用起来都非常简单优雅,这一点和WebViewJavascriptBridge相比,简直就是艺术。
- 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)的更多相关文章
- Android混合开发之WebView与Javascript交互
		前言: 最近公司的App为了加快开发效率选择了一部分功能采用H5开发,从目前市面的大部分App来讲,大致分成Native App.Web App.Hybrid App三种方式,个人觉得目前以Hybri ... 
- Android混合开发之WebView使用总结
		前言: 今天修改项目中一个有关WebView使用的bug,激起了我总结WebView的动机,今天抽空做个总结. 混合开发相关博客: Android混合开发之WebView使用总结 Android混合开 ... 
- Android混合开发之WebViewJavascriptBridge实现JS与java安全交互
		前言: 为了加快开发效率,目前公司一些功能使用H5开发,这里难免会用到Js与Java函数互相调用的问题,这个Android是提供了原生支持的,不过存在安全隐患,今天我们来学习一种安全方式来满足Js与j ... 
- .NET 开源了,Visual Studio 开始支持 Android 和 iOS 程序编写并自带 Android 模拟器
		.NET 开源了,Visual Studio 开始支持 Android 和 iOS 程序编写并自带 Android 模拟器 北京时间今天凌晨的 Connect(); 大会上,多少程序员的假想成为现实. ... 
- IOS JPush 集成步骤(极光远程推送解决方案,支持android和iOS两个平台)
		● 什么是JPush ● 一套远程推送解决方案,支持android和iOS两个平台 ● 它能够快捷地为iOS App增加推送功能,减少集成APNs需要的工作量.开发复杂 度 ● 更多的信息,可 ... 
- [RN] React Native 图片保存到相册(支持 Android 和 ios)
		React Native 图片保存到相册(支持 Android 和 ios) 原理: IOS用 RN自带的 CameraRoll, Android 使用 不成功,需要 react-native-fs ... 
- 同时支持Android 和 ios 投屏到电脑的软件,Support Android and ios screen shrare to PC - 希沃授课助手
		最近学校由粉笔黑板更换了智慧电子黑板,然后发现了一个好玩的软件. 感谢希沃公司的开发: 希沃授课助手,这是一款同时支持Android 和 ios 投屏和远程控制的. 效果很流畅,非常赞 
- Android开发之旅3:android架构
		引言 通过前面两篇: Android 开发之旅:环境搭建及HelloWorld Android 开发之旅:HelloWorld项目的目录结构 我们对android有了个大致的了解,知道如何搭建andr ... 
- iOS 混合开发之 Cordova 实践
		在15年时,之前公司使用 Cordova 做混合开发使用,后来公司没有用到了,现在重新记录下. Cordova (官网:http://cordova.apache.org/)简介: Apache Co ... 
随机推荐
- Bootstrap组件福利篇:十二款好用的组件推荐
			阅读目录 一.时间组件 1.效果展示 2.源码说明 3.代码示例 二.自增器组件 1.效果展示 2.源码说明 3.代码示例 三.加载效果 一.实用型 二.炫酷型 四.流程图小插件 1.效果展示 2.源 ... 
- 【转】一步一步教你在Ubuntu12.04搭建gstreamer开发环境
			原文网址:http://blog.csdn.net/xsl1990/article/details/8333062 闲得蛋疼 无聊寂寞冷 随便写写弄弄 看到网上蛮多搭建gstreamer开 ... 
- ECMALL模板解析机制.MVC架构分析及文件目录说明.二次开发指南手册(转)
			ECMALL模板解析语法与机制 http://www.nowamagic.net/architecture/archt_TemplateSyntaxAndAnalysis.php ECMALL模块开发 ... 
- 5.JMeter测试mysql数据库
			1.使用jmeter测试mysql数据库时,需要导入jar包,jar包网盘地址为:链接: https://pan.baidu.com/s/1-5-s7HccudT4GirpmBVn6Q 密码: bea ... 
- angular的路由跳转,的监听$rootScope.$on
			使用angular来做项目时,习惯性的使用第三方路由插件ui-router配置路由.每一个状态都对应着一个页面, 因此对路由状态改变的监听也变的十分重要. 可以使用:$rootScope.$on(…… ... 
- django 网站 Hello world
			环境搭建 1.python2.7,python3.x均可以使用, 2.直接pip install django或者去下载whl文件安装 3.用eclipse和pycharm均可 开始 1.进入一个目录 ... 
- 初识C++模板元编程(Template Mega Programming)
			前言:毕设时在开源库上做的程序,但是源码看得很晕(当时导师告诉我这是模板元编程,可以不用太在乎),最近自己造轮子时想学习STL的源码,但也是一样的感觉,大致了解他这么做要干什么,但是不知道里面的机制. ... 
- Java里的常用运算符及其优先级顺序
			知道了八种基本数据类型后,在使用中弄清运算符的优先级是很有必要的.具体如下图: 这里需要注意的是,强制类型转换的优先级是位于乘除前面而处于单目运算符后面的,这是比较容易出错的地方.比如用Math.R ... 
- CentOS6.4 上搭建NIS网络信息服务器
			NIS(Network Information Service)网络信息服务,主要功能是提供用户登录信息给客户端主机查询之用,用于企业局域网Linux主机账户的集中管理(非跨平台).NIS服务器在大型 ... 
- node的express中使用socket.io
			服务器端server.js代码 var express=require("express"); var http=require("http"); var si ... 
