微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一篇文章了解JsBridge,Android多线程断点续传

所谓健壮就是经得住考验,bug少、兼容性好、在各种情况下都能稳定运行。然而,可怕的事,现有的知名开源jsbridge 质量都存在着严重问题,下面是我在两个知名Android JSBridge开源库下提的问题:

  1. https://github.com/lzyzsd/JsBridge/issues/119
  2. https://github.com/jesse01/WebViewJavascriptBridge/issues/5

可见,要想造一座好桥,还是不容易的。

跨平台

为了保证同一份Javascript代码既能同时在Android和IOS下正常运行,那么好的JavaScript Bridge 应该要能跨平台,这样才能保证在Android和IOS和H5通信协议一致。然而,目前Github上万star的 marcuswestin/WebViewJavascriptBridge 官方也只提供了IOS版,尽管有一些第三方Android实现,但大都存在各种各样的问题,有的存在严重bug,如 https://github.com/jesse01/WebViewJavascriptBridge/issues/5 , 有的和IOS版差别太大,如 https://github.com/fangj/WebViewJavascriptBridge 。

安全

安全是很重要的,现在有些Android实现中使用了 webview.addJavascriptInterface ,而在Android 4.2.2之前, webview.addJavascriptInterface 存在任意代码执行漏洞,这就会导致严重的安全问题。

使用简单

一个好东西应该是用起来简单的。

对于JS Bridge来说,使用简单应该包括三个端:Android、IOS、 JavaScript, 也就是说无论对于哪个端,用起来要足够的简单,这很重要,这样可以避免大量的原生开发和前端开发的撕逼。

强大

在满足可用性和使用简单的基础上,功能要尽可能强大。现在的很多实现,基本上只满足了可用性,而功能方面都比较弱,比如:

  1. 不支持检测是否存在某个API的方法;有时随着版本迭代不确定某个版本下是否存在某个Native或Javascript方法(在版本迭代过程中一些是新添加的)。
  2. 不支持进度回调;现有JS Bridge基本都只支持一次调用一次返回,但是有些时候,如js调用原生下载文件功能方法时,原生需要在下载过程中将下载进度不停返回给js。
  3. 不支持API管理;现有JS Bridge注册API时基本都是每个API都需要单独注册,这样在API多的情况下,不仅使用回非常麻烦,也不利于API分类管理。

福音

我给大家捅破了现实,也必须为大家重塑希望!听不懂?那简单来说,就是前面都是铺垫,下面才是真正目的!

那么到底有没有一个可用、健壮、跨平台、安全、使用简单、强大的现成的JS Bridge?

哈哈,当然是有的, 经过我通宵达旦、四处浏览、呕心沥血、废寝忘食,终于创造了这么一个健壮、跨平台、安全、使用简单、强大的JS Bridge,那就是DSBridge,它有如下特点:

最后

代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码

所以,长征路还长,大家还是好好地做个务实的程序员吧。

最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~

我的 Android 学习,面试文档,视频收集大整理

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐