webview goBack() 无效问题

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>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,751评论 0 17
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,588评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,126评论 2 59
  • 这些都是曾经收集到的一些关于Webview的知识,有些工作中用到了,有些暂时还没有用到,这次统一整理下,希望对自己...
    乆丩乣阅读 11,997评论 14 101
  • “售价一万元的钻戒,成本价就三千元左右。”有些钻戒在流通环节加价高达200%~300% 。为了解钻石行业的暴利,我...
    酿花拾春阅读 3,311评论 0 1