最近接了一个新项目,项目说是混合开发,其实就是原生给个壳,实现全是前端的同学做的,接到项目后,领导说了很多bug,其中这个比较有趣,所以在这个记录一下,还原一下:
当我们登录成功后进入首页,然后再首页深入点击进入多级页面,点击手机的返回按钮,可以实现返回到上个页面,但是当返回到首页后,正常来说点击返回按钮应该走我写好的退出页面的方法,但是它并没有走退出的方法,而是走了,还有页面返回的方法,导致每次点击后都会在首页,无法触发退出,但当我们多次快速点击返回按钮时,可以触发退出的方法,这就比较奇怪了,
我看了下代码,代码是这样写的:

重写返回键,cangoback的时候就返回,否则就退出,看了半天也没有发现什么问题,
于是我请教了一下大佬,大佬说如果首页加载的webview,你现在是在fragment里面finish活动肯定不行,需要做个事件分发,用eventbas或者是广播去通知mainactivity去finish掉才能退出整个App。其实就是一句话,不能在fragment中finish掉activity。
我听了后觉得有些麻烦,况且,我加载H5页面是在activity中的,并不是在fragment中的,按理来说在activity中加载H5页面,上面代码操作应该是没有毛病的,我自己写了demo测试了,完全没有问题,这个问题各位大佬要是有办法,请指教一下,谢谢。
但是问题出现了还是要解决的。我用了一个简单粗暴的方法搞定了:
我在加载首页的时候获取了url,然后保存住,然后我利用webview.geturl,来和我的首页进行对比,一样的话就给他退出,否则的话就返回上一个页面。

在Android混合开发项目中,遇到登录后进入H5页面,点击手机返回键无法直接退出应用的问题。分析发现,虽然在Activity中加载H5,但返回操作未正确处理。解决方案是通过比较当前WebView加载的URL与首页URL,相同则调用退出方法,不同则返回上一页。此问题的解决避免了在Fragment中finish Activity的复杂性。
最低0.47元/天 解锁文章
3050

被折叠的 条评论
为什么被折叠?



