hjhrq1991 / JsBridge

基于github.com/lzyzsd/JsBridge优化改进而来的JsBridge
http://hjhrq1991.info/
MIT License
127 stars 31 forks source link

android6.0及以下,历史栈返回问题 #6

Open zjcfly opened 6 years ago

zjcfly commented 6 years ago

bridgeWebView内嵌vue单页面应用,使用keep-alive缓存(没有使用keep-alive时,是正常的),android6.0及以下,当第二次进入一个页面时,bridgeWebView.getUrl()没有变,也不进入onPageFinished等方法,历史记录缺失,导致无法返回、返回错乱等问题,没有报错。android7.0及以上的测试机正常;android6.0测试机,红米Note4X、Galaxy A7是正常的,乐Max2有上述问题;android5.0、4.0的试了几个都有这个问题。两种内核版本的JsBridge都试过,都有这个问题。我们又将应用部署到服务器上,在问题手机乐Max2上用QQ浏览器、夸克浏览器访问,返回操作是正常的;用Via浏览器访问,返回也不正常。小白查了几天没有解决。。大神如果有时间可以看看这个问题。

zjcfly commented 6 years ago

问题解决了一部分。使用Tbs X5内核的JsBridge时,根据腾讯浏览服务官网https://x5.tencent.com/ 里面的文档,添加了liblbs.so文件,在Application里初始化x5内核。之前有问题的手机部分可正常返回,部分任然无法正常返回(无法调起X5内核)。详细文档见官网,可下载sdk,里面有demo。可参考:https://www.jianshu.com/p/8a7224ff371a

zjcfly commented 6 years ago

又解决了一部分。我注释掉compile 'com.hjhrq1991.library.tbs:tbsjsbridge:1.0.7',直接将大神的JsBridge-master\library-tbsx5\src\main\java\下的com文件夹拷到自己的项目中(暂时不会打jar包。。),又将JsBridge-master\library-tbsx5\src\main\assets\WebViewJavascriptBridge.js文件拷到了自己的assets目录下(没有这步会报错),然后将官网最新的jar包tbs_sdk_thirdapp_v3.6.0.1315_43612_sharewithdownload_withoutGame_obfs_20180718_102847.jar放到libs目录下,重新编译就OK了(注意:在x5内核初始化完成后再加载bridgeWebView)。参考:https://www.jianshu.com/p/f40b3d7c92f1 。至此大部分测试机都成功调起了x5内核,可正常返回了。不过仍然有两个手机没成功,暂时不管了。当然,我这样拼凑起来的,不知道会不会有什么其它问题。。大神有时间可以更新一下,集成最新的x5 SDK。