美文网首页
webview goBack() 无效问题

webview goBack() 无效问题

作者: 吃货养成记 | 来源:发表于2018-11-05 17:37 被阅读111次

    WebView webView;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_web);

    webView =(WebView)findViewById(R.id.webview);

    WebSettings settings =webView.getSettings();

            webView.requestFocusFromTouch();

            settings.setJavaScriptEnabled(true);  //支持js

            settings.setAllowFileAccess(true);    //设置可以访问文件

            webView.setWebViewClient(new WebViewClient() {

    @Override

                public boolean shouldOverrideUrlLoading(WebView view, String url) {

    //判断重定向的方式二

                    if (mIsPageLoading) {

    return false;

                    }

                    if (url !=null && url.startsWith("http")) {

    webView.loadUrl(url);

    return true;

                    }else {

    Uri uri = Uri.parse(url);

                        Intent intent =new Intent(Intent.ACTION_VIEW, uri);

                        try {

    view.getContext().startActivity(intent);

                        }catch (ActivityNotFoundException e) {

    e.printStackTrace();

                        }

    return true;

                    }

    }

    @Override

                public void onPageStarted(WebView view, String url, Bitmap favicon) {

    super.onPageStarted(view, url, favicon);

                    mIsPageLoading =true;

                    Log.d("---------", "onPageStarted");

                }

    @Override

                public void onPageFinished(WebView view, String url) {

    super.onPageFinished(view, url);

                    mIsPageLoading =false;

                    Log.d("---------", "onPageFinished");

                }

    });

    }

    private boolean mIsPageLoading;

    /**

    * 按键响应,在WebView中查看网页时,检查是否有可以前进的历史记录。

    */

    @Override

    public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {

    if (webView.canGoBack()) {

    webView.goBack();

    return true;

            }else {

    finish();

            }

    }

    return super.onKeyDown(keyCode, event);

    }

    activity_web.xml 文件

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

        android:orientation="vertical" 

    android:layout_width="match_parent"

        android:layout_height="match_parent">

    <WebView   android:id="@+id/webview"

            android:layout_width="match_parent"

            android:layout_height="match_parent"

            android:layerType="none"

            >

    </LinearLayout>

    相关文章

      网友评论

          本文标题:webview goBack() 无效问题

          本文链接:https://www.haomeiwen.com/subject/lkasxqtx.html