安卓app单webview改为多webview加载网页

本文探讨了如何解决安卓App使用单个Webview导致页面返回时需重新加载的问题。通过创建多个Webview,模拟iOS的WKWebView缓存功能,实现用户在打开新页面时启动新的Webview加载,确保返回时能回到先前位置。同时,针对Android系统限制,通过创建不同Activity配合Webview,避免无限创建新Activity。在H5代码中调整sessionstorage为localstorage以跨Webview传递数据,并处理返回键行为,实现多级页面返回功能。最后,处理了更新版本时的下载和安装流程,以及解决了页面切换时的白屏现象。
摘要由CSDN通过智能技术生成
        这几天用csdn的手机版,觉得用户体验不错,和我们的产品类似,也是采用webview来加载的页面,区别是它他每加载一个页面,都会启用一个新的webview来加载。
        我们安卓平台只有一个webview,进入链接后返回,原来的页面还需要重新加载,因此不能回到原来进入新闻的地方。ios没有这个问题,因为ios的wkwebview自带页面缓存功能,返回刚才访问的页面,不需要重新加载。这个问题安卓平台的crosswalk貌似单webview解决不了,只好采用多页面,用户每次打开新的页面,打开一个webview来加载网页解决。
        重载了主页面webview1的控制逻辑,判断如果是首页或是登陆页面用webview1打开。否则采用webview2打开,webview2的控制逻辑改为如果加载的不是当前页面的url的话,用一个新的webview2加载。上机跑了一下。发现从首页进入第二个页面没有问题,但是从第二个页面进入第三个页面就不行了,程序直接退出。反编译了csdn的源代码,发现他有好多个activity,没有细研究为什么他可以接受用户无限多的访问,每次访问都启动一个新的activity。考虑我们不可能写那么多activity来支撑用户无限多的访问。我们只是首页要求返回后回到刚才访问过的地方,其他页面没有那么大的要求,因此就按照两个webview实现了一个版本,首页一个,其他页公用一个。
         晚上回家突然想到,在二级页面activity2不可以启动一个和自己同样class的activity,我可以再
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值