Android Webview重定向問題解決方法
項目中需要webview重定向,但是由于一個webveiw里面有許多加載操作,因此在調(diào)用webview。goback()方法時,往往達不到我們需要的操作效果。
1.解決方法
WebBackForwardList webBackForwardList=webview.copyBackForwardList()獲取webview加載棧,然后更具加載棧做邏輯操作
2.webBackForwardList常用的方法
int size = webBackForwardList.getSize() webBackForwardList.getCurrentItem() webBackForwardList.getCurrentIndex() webBackForwardList.getItemAtIndex(index)
getsize()方法獲取當(dāng)前加載棧的長度;
getCurrentItem()獲取當(dāng)前webview所加載的界面,我們可以在這個方法下獲得url,title等內(nèi)容;
getCurrentIndex()獲取當(dāng)前加載在加載棧中的位置;
webBackForwardList.getItemAtIndex(index)獲取加載棧中第index頁面;
3.合理使用
在2中我們獲取到加載頁面的一些信息,然后可以根據(jù)當(dāng)前url,標題,位置。來進行相應(yīng)的處理。
4.Demo使用
現(xiàn)在我們有這樣一個場景:打開一個activity,webview加載A界面,然后用戶在A里面點擊B,然后點擊C,點擊D。返回操作時我們需要從D跳到B,然后跳A.下面為代碼:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (webView.canGoBack()) {
WebBackForwardList webBackForwardList = webView.copyBackForwardList();
if (webBackForwardList.getCurrentIndex() == 4) {//當(dāng)前處于D界面
webView.loadUrl(webBackForwardList.getItemAtIndex(1).getUrl());//挑轉(zhuǎn)到B界面
return true;
}
webView.goBack();
}
return true;
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android App中使用Gallery制作幻燈片播放效果
這篇文章主要介紹了Android App中使用Gallery制作幻燈片播放效果,相冊應(yīng)用中的輪播功能也與本文中例子的原理類似,需要的朋友可以參考下2016-04-04
Android 判斷屏幕開關(guān)狀態(tài)方式總結(jié)
這篇文章主要介紹了Android 判斷屏幕開關(guān)狀態(tài)方式總結(jié)的相關(guān)資料,需要的朋友可以參考下2016-10-10
Android開發(fā)之判斷有無虛擬按鍵(導(dǎo)航欄)的實例
下面小編就為大家分享一篇Android開發(fā)之判斷有無虛擬按鍵(導(dǎo)航欄)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
Android開發(fā)Input系統(tǒng)觸摸事件分發(fā)
這篇文章主要為大家介紹了Android開發(fā)Input系統(tǒng)觸摸事件分發(fā)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
android原生實現(xiàn)多線程斷點續(xù)傳功能
這篇文章主要為大家詳細介紹了android原生實現(xiàn)多線程斷點續(xù)傳功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07

