1. 程式人生 > >Android webview多個頁面goback無法銷燬當前activity的處理

Android webview多個頁面goback無法銷燬當前activity的處理

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();
    }
        ...