Android webview多個頁面goback無法銷燬當前activity的處理
阿新 • • 發佈:2019-01-14
webview載入一個網頁,這個網頁會連結到另一個網頁,這兩個網頁頂部都有h5寫的返回圖示,點選返回之前是這樣的:
@JavascriptInterface
public void goBack() {
finish();
}
呼叫這裡直接finish掉,這樣的問題是當你的webview開啟的第一個頁面連結了另一個頁面的時候會直接關閉兩個頁面,顯然不是我們要的效果。
所以後面我改了下:
@JavascriptInterface public void goBack() { if(webview.cangoback){ webview.goback(); }else{ finish(); } }
但這樣的結果是連線到地2個之後再點頂部的返回無法銷燬當前activity。
最後改成這樣:
@JavascriptInterface public void goBack() { finish(); } ··· @Override public boolean shouldOverrideUrlLoading(com.tencent.smtt.sdk.WebView webView, String s) { if (!s.startsWith("http") & !s.startsWith("https") & s.startsWith("file")) { return false; } else { webView.loadUrl(s); return true; } } ··· @Override public void onBackPressed() { if (webView.canGoBack()) webView.goBack(); else finish(); } ...