Android加载H5页面手机的返回操作

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

最近接了一个新项目,项目说是混合开发,其实就是原生给个壳,实现全是前端的同学做的,接到项目后,领导说了很多bug,其中这个比较有趣,所以在这个记录一下,还原一下:

当我们登录成功后进入首页,然后再首页深入点击进入多级页面,点击手机的返回按钮,可以实现返回到上个页面,但是当返回到首页后,正常来说点击返回按钮应该走我写好的退出页面的方法,但是它并没有走退出的方法,而是走了,还有页面返回的方法,导致每次点击后都会在首页,无法触发退出,但当我们多次快速点击返回按钮时,可以触发退出的方法,这就比较奇怪了,

我看了下代码,代码是这样写的:

重写返回键,cangoback的时候就返回,否则就退出,看了半天也没有发现什么问题,

于是我请教了一下大佬,大佬说如果首页加载的webview,你现在是在fragment里面finish活动肯定不行,需要做个事件分发,用eventbas或者是广播去通知mainactivity去finish掉才能退出整个App。其实就是一句话,不能在fragment中finish掉activity。

我听了后觉得有些麻烦,况且,我加载H5页面是在activity中的,并不是在fragment中的,按理来说在activity中加载H5页面,上面代码操作应该是没有毛病的,我自己写了demo测试了,完全没有问题,这个问题各位大佬要是有办法,请指教一下,谢谢。

但是问题出现了还是要解决的。我用了一个简单粗暴的方法搞定了:

我在加载首页的时候获取了url,然后保存住,然后我利用webview.geturl,来和我的首页进行对比,一样的话就给他退出,否则的话就返回上一个页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值