WebViewJavascriptBridge for android

哈哈,前两天 WebViewJavascriptBridge 的作者 merge 了我的提交,纪念一下。

——————————— 更新的分割线 ———————————

今天给 WebViewJavascriptBridge 又又提了一个 pull request,解决的是如果使用 proguard or dexguard 之类的代码混淆工具会导致 javascript interface 被混淆的 bug。
作者还是没出现,准备自己维护了。

——————————— 更新的分割线 ———————————

今天给 WebViewJavascriptBridge 又提了一个 pull request,解决一个关于 WebChromeClient.onJsAlert 时候由于没有关闭 alert 带来的 WebView 不响应 bug。

感觉至少这个项目 android 部分我可能会比较关注,大家要使用也可以直接看我的 fork (主要是原作看起来不管了)。

https://github.com/wheam/WebViewJavascriptBridge

——————————— 更新的分割线 ———————————
因为工作的原因,@netputer 给我推荐了这个项目, 而这个项目是 fork 自 另外一个项目

WebViewJavascriptBridge 原本是一个用于 iOS UIWebView 和注入到网页中的 javascript 的交互工具,fangj 这位同学 fork 之后修改到了 android 上,于是我们采用了。

其实这个项目的思路很简单,就是使用统一的 javascript interface 来交互所有的信息,使用两个 map 分别来存储信息和当次交互的 id,通过这个 id 实现异步的回调,具体的逻辑之后我可以再写写。

不过简单归简单,倒是省了使用 javascript interface 麻烦的过程,也让 js 和 android 的互调成为了可能。
我们使用的还是很开心的,并且也做了一些简单的修改。

其中和项目本身有关的三个是:

  • 让 javascript 提供给 android 方法的回调在 UI 线程中执行,不然调用者自己 post 也是麻烦

  • 解决了一个 javascript 语句没在 UI 线程中执行的 bug,这个似乎是作者忘记改其中的一个项目了

  • 对执行的 javascript 语句进行 double escape,否则 javascript 遇到 / 和 “ 会无法解析为 json 对象

这些修改我也提了一个 pull request ,希望作者采用哈哈哈。