華為,小米我查看回傳的路徑不對,然后點擊跳轉的頁面提示 403 Forbidden
錯誤的回傳

正確的回傳

求大神指點迷津,真的不知道是哪里的問題
uj5u.com熱心網友回復:
onPageFinished 里面記錄下你每次跳轉的url 是什么值public void onPageFinished(WebView view, String url) {
recordUrl(view.getOriginalUrl());
// recordUrl(view.getUrl()); getOriginalUrl 和 getUrl 看看區別
super.onPageFinished(view, url);
}
/**
* 記錄非重定向鏈接 避免重繪頁面造成的重復入堆疊*/
private void recordUrl(String url)
{
//這里還可以根據自身業務來屏蔽一些鏈接放入URL堆疊 回傳鍵的時候去除最后一個
if(!TextUtils.isEmpty(url)&& !url.equalsIgnoreCase(getLastPageUrl()) && ! url.contains("CasServer/login")){
mUrls.push(url);
}
}
/**獲取上一頁的鏈接*/
private synchronized String getLastPageUrl(){
return mUrls.size()>0 ? mUrls.peek():null;
}
/**推出上一頁鏈接*/
public String popLastPageUrl(){
if(mUrls.size()>=2)
{
mUrls.pop();// pop current page url
return mUrls.pop();
}
return null;
}
uj5u.com熱心網友回復:
/*** 記錄URL的堆疊
* 規則:
* 1.不可在{@code WebView.onPageFinished();}中開始記錄URL
* 2.記錄需要屏蔽重定向URL
* */
public Stack<String> mUrls=new Stack<>();
根據我的這個方法記錄你每次跳轉的url 和 web.goback() 的url 有什么不同 ,是重定向了,還是其他問題debug mUrl引數一下就看出問題所在,實在看不出來,那就用這個方法直接記錄每次的url 你的回傳操作直接這樣寫
String lastPageUrl = webView.popLastPageUrl();
if(lastPageUrl == null){
super.goBack(view);
}else {
webView.loadUrl(lastPageUrl);
relativeClose.setVisibility(View.VISIBLE);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/18813.html
標籤:Android
