8000 GitHub - DerekYanJ/WebView: WebView、WebViewClient and WebChormeClient 常用知识点 · GitHub
[go: up one dir, main page]

Skip to content

DerekYanJ/WebView

Repository files navigation

WebView

WebView、WebViewClient and WebChormeClient 常用知识点

概述

WebView是Android平台上一个特殊的View,可以用来显示网页

WebView、WebViewClient、WebChormeClient

WebViewClient和WebChormeClient用来辅助WebView

  • WebView职责:解析、渲染网页
  • WebViewClient:辅助WebView处理各种事件、通知
  • WebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等

WebView常用方法

设置编码

mWebView.getSettings().setDefaultTextEncodingName("utf-8");

支持js

mWebView.getSettings().setJavaScriptEnabled(true);

设置本地调用对象及其接口(重要知识点跟JS交互就靠他)

mWebView.addJavascriptInterface(new Object(), "myObj");

加载本地网页

mWebView.loadUrl("file:///android_asset/wb.html");

加载网络地址

mWebView.loadUrl("http://www.baidu.com");

加载网页格式的文本

String summary = "You scored 192 points.";
                   mWebView.loadData(summary, "text/html", null);

设置WebViewClient

mWebView.setWebViewClient(mWvClient);

设置WebChromeClient

mWebView.setWebChromeClient(mChrome);

清除webview资源 当activity销毁的时候


    @Override
    protected void onDestroy() {
        super.onDestroy();
        //清除缓存
        mWebView.clearCache(true);

        //清除访问历史记录
        mWebView.clearHistory();

        //释放WebView占用的资源
        mWebView.destroy();
    }

点击返回按钮如果有上一页则跳转上一页,添加返回键拦截


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if(keyCode == KeyEvent.KEYCODE_BACK){ //拦截返回键
            if(mWebView.canGoBack()){ //是否有上一页可返回
                mWebView.goBack();//返回到上一页
                return false;
            }
        }
        return super.onKeyDown(keyCode, event);
    }

WebViewClient常见方法

加载资源事件 url:链接

public void onLoadResource(WebView view, String url)

请求url开始

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

请求url结束

public void onPageFinished(WebView view, String url)

请求错误信息

public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error)  -23+
  public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse)  -23+
  public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)  -23-

打开方式(程序还是系统浏览器)

public boolean shouldOverrideUrlLoading

WebChormeClient常见方法

获取网页头部icon

public void onReceivedIcon(WebView view, Bitmap icon)

获取头部标题

public void onReceivedTitle(WebView view, String title)

网页加载进度变化

public void onProgressChanged(WebView view, int newProgress)

About

WebView、WebViewClient and WebChormeClient 常用知识点

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

0