WebView 显示数据

WebView
1, 包含了浏览网页的功能的控件
2, WebViewClient 网页加载的处理器
webView 只有设置了WebViewClient , 才能在当前的应用程序中, 显示网页
3, WebChromeClient webView处理界面功能的, ---进度条
4, WebSettings: webView 设置的
常用的方法:
webView.canGoBack() 用于检测网页是否可以后退
webView.goBack() WebView后退
webView.canGoForward() 用于检测网页是否可以前进
webView.goForward() WebView前进
webView.stopLoading() 停止网页的加载
webView.reload() 刷新网页
webView.loadUrl(String url) 加载网页
加载本地的页面
1, src/main 文件夹中创建一个assets 的目录
2, 创建一个html 的页面
3, 在Activity 中加载数据时,
mWebView.loadUrl("file:///android_asset/js.html");
实现效果: 实例图
WebView 显示数据
实例代码:
package bw.com.bw_day16;

import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;

public class MainActivity extends AppCompatActivity {

    //WebView   继承  AbsoluteLayout ---》   ViewGroup    --- 》 View  --- 》Object
    private WebView mWebView;
    private ProgressBar mPb;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mWebView = (WebView) findViewById(R.id.web_view_id);
        mPb = (ProgressBar) findViewById(R.id.progress_bar_id);

        //1, 设置加载的页面
        //mWebView.loadUrl("http://baidu.com");
        //mWebView.loadUrl("http://mail.163.com");
        mWebView.loadUrl("file:///android_asset/hello.html");



        //2, webView 中必须要设置WebViewClient , 才能在当前App中显示网页
        mWebView.setWebViewClient(new WebViewClient(){

            //重写加载Url地址的方法
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
                return super.shouldOverrideUrlLoading(view, request);
            }

            //网页开始加载时, 调用的方法 --- 每次有新的网页加载时,都会调用该方法
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                //显示进度条
                mPb.setVisibility(View.VISIBLE);
            }

            //网页结束加载时, 调用的方法
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                //隐藏进度条
                mPb.setVisibility(View.GONE);
            }
        });


        //3, 设置接收页面中的相关信息  WebChromeClient
        mWebView.setWebChromeClient(new WebChromeClient(){
            //当加载页面的进度发生变化时, 会自动调用
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                super.onProgressChanged(view, newProgress);
                mPb.setProgress(newProgress);
            }
        });

        //4, 设置WebSettings 参数信息
        WebSettings webSettings = mWebView.getSettings();
        //设置WebSettings 的配置后, 才会更新WebView中的设置
        webSettings.setJavaScriptEnabled(true);//设置WebView 支持js

    }


    //按钮点击事件监听器
    //后退
    public void back(View view)
    {
        //判断是否可以后退, 之后再进行后退的操作
        if(mWebView.canGoBack())
        {
            mWebView.goBack();
        }
    }
    //前进
    public void forward(View view) {

        //判断是否可以前进, 之后再进行前进的操作
        if(mWebView.canGoForward())
        {
            mWebView.goForward();
        }
    }

    //停止
    public void stop(View view) {

        mWebView.stopLoading();//停止加载
    }

    //刷新
    public void refresh(View view) {

        mWebView.reload();//重新加载
    }
}

页面



<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="bw.com.bw_day16.MainActivity">

    <ProgressBar
        android:layout_width="match_parent"
        android:layout_height="5dp"
        android:id="@+id/progress_bar_id"
        style="?android:attr/progressBarStyleHorizontal"
        />

    <WebView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/web_view_id"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="后退"
            android:onClick="back"
            />

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="前进"
            android:layout_weight="1"
            android:onClick="forward"/>

        <Button
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:text="停止"
            android:onClick="stop"
            />

        <Button
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:text="刷新"
            android:layout_weight="1"
            android:onClick="refresh"/>



    </LinearLayout>

</LinearLayout>