uknownothingsnow / JsBridge

android java and javascript bridge, inspired by wechat webview jsbridge
9.78k stars 2.01k forks source link

基于该库及集成腾讯x5的封装提供,能解决很多问题... #196

Open YummyLau opened 5 years ago

YummyLau commented 5 years ago

项目基于JsBridge实现了js-sdk实现,同时经过线上测试发现原生webview存在很多问题,且jsbridge也存在 issues描述的问题。故封装-测试-实现-上线之后发现稳定可用。目前代码 https://github.com/YummyLau/AndroidModularArchiteture/tree/master/libWebview 模块,可二次使用。也算回馈作者了 :sunglasses:

YummyLau commented 5 years ago

也画了这个库的类图,流程图,及一次请求的交互图。 可以看 JsBridge类图/流程图/交互图 帮助理解。

jimneylee commented 5 years ago

@YummyLau 你好,请教一个问题,我这边最近使用这个库遇到一个问题,当前业务场景如下: Native 以一秒 20 次频率一直调用一个 js 接口,导致 Native 有时收不到 H5 调用 js 接口的消息。 感觉像 js 阻塞,不知道你有没有遇到过

YummyLau commented 5 years ago

@YummyLau 你好,请教一个问题,我这边最近使用这个库遇到一个问题,当前业务场景如下: Native 以一秒 20 次频率一直调用一个 js 接口,导致 Native 有时收不到 H5 调用 js 接口的消息。 感觉像 js 阻塞,不知道你有没有遇到过

如果我理解得对的话,你所说的” Native 有时收不到 H5 调用 js 接口的消息“不太明白,指的是Native测得不到Js的响应吗?目前没有遇到过通讯阻塞的问题。你可以尝试联调,native的shouldOverrideUrlLoading来确定Web测是否有分发消息过来,如果没有,则调试js测的消息队列是否有消息,如果还是没有,则需要调试在响应Native的时候是否有产生响应事件。

jimneylee commented 5 years ago

感谢这么及时的回复,我这边问题简述为:Native 以频率 20hz 发消息给 H5,同时 H5 点击按钮发消息给 Native,但 Native 经常收不到,H5 通过 alert 弹框确认是调用发了。刚才看 log 发现虽然 Native 发送频率 20hz,但是 callback 条数只有一半,也就是 Native 发送的也有丢失。我这边先跑下你给出链接的 demo,看看效果。:)

YummyLau commented 5 years ago

感谢这么及时的回复,我这边问题简述为:Native 以频率 20hz 发消息给 H5,同时 H5 点击按钮发消息给 Native,但 Native 经常收不到,H5 通过 alert 弹框确认是调用发了。刚才看 log 发现虽然 Native 发送频率 20hz,但是 callback 条数只有一半,也就是 Native 发送的也有丢失。我这边先跑下你给出链接的 demo,看看效果。:)

嗯嗯 ok

smallbuer commented 4 years ago

尝试了js中新建多个iframe解决高并发问题,暂时解决了问题,但是最后觉得这种机制有缺陷,由于代码缺失问题,已经对代码重构和改造,请参考:https://github.com/smallbuer/JSBridge-Android

YummyLau commented 4 years ago

最近项目重构来说js桥模块,现在的android已经js交互已经很完善了,建议和前端自己封装,使用原生功能就好了。