Back

android - webview获取到当前页面的url

发布时间: 2017-10-23 00:54:00

使用 webview.getUrl() 即可。 可以完美返回  a.com/#/login ,  a.com/#/some_url  这样的链接

然后,就可以根据该URL,判断点击 android back 按钮后,是否会退出app. 

    boolean doubleBackToExitPressedOnce = false;
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        Log.d(TAG, "== webView url: " + webView.getUrl());

        if (event.getAction() == KeyEvent.ACTION_DOWN) {
            switch (keyCode) {
                case KeyEvent.KEYCODE_BACK:
                    if (webView.canGoBack()
                            && !webView.getUrl().endsWith("/#/")
                            && !webView.getUrl().endsWith("/#/login")
                            ) {
                        webView.goBack();
                    } else {
                        if (doubleBackToExitPressedOnce) {
                            super.onBackPressed();
                        }

                        this.doubleBackToExitPressedOnce = true;
                        Toast.makeText(this, "两次点击才能退出", Toast.LENGTH_SHORT).show();

                        new Handler().postDelayed(new Runnable() {

                            @Override
                            public void run() {
                                doubleBackToExitPressedOnce=false;
                            }
                        }, 2000);
                    }
                    return true;
            }

        }
        return super.onKeyDown(keyCode, event);
    }

Back