android webview的使用

webView的基本用法,包括加载网页,解析出title显示,设置网页的加载进度,下载网页中的文件等。

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private WebView webView;
    private Button btnBack;
    private Button btnRefresh;
    private Button btnJS;
    private TextView tvText;
    private String url="http://www.anzhi.com/soft_2602471.html";
    private ProgressBar progressBar;

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

    private void initView() {
        webView = (WebView) findViewById(R.id.webview);
        btnBack = (Button) findViewById(R.id.btn_back);
        btnRefresh = (Button) findViewById(R.id.btn_refresh);
        btnJS = (Button) findViewById(R.id.btn_js);
        tvText = (TextView) findViewById(R.id.tv_text);
        progressBar = (ProgressBar) findViewById(R.id.progressbar);
    }

    private void initData() {
        webView.loadUrl(url);
    }

    private void initListener() {
        webView.setWebChromeClient(new WebChromeClient() {
            //获得网页的标题
            @Override
            public void onReceivedTitle(WebView view, String title) {
                super.onReceivedTitle(view, title);
                tvText.setText(title);
            }

            //监听进度的变化
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                super.onProgressChanged(view, newProgress);
                if (newProgress == 100) {
                    progressBar.setVisibility(View.GONE);
                } else {
                    progressBar.setVisibility(View.VISIBLE);
                    progressBar.setProgress(newProgress);
                }
            }
        });

        //WebViewClient中处理通知和请求事件
        webView.setWebViewClient(new WebViewClient(){
            //对网页中的超链接访问时会响应该方法
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return super.shouldOverrideUrlLoading(view, url);
            }
        });

        //设置下载的监听
        webView.setDownloadListener(new DownloadListener() {
            @Override
            public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
                System.out.println("url"+url);
                //下载文件
                if (url.endsWith(".apk")){
                    //两种下载的模式
                    //第一种,开启一个子线程去下载 new Thread().start();
                    //第二种 intent调用系统浏览器,执行下载
                    Uri uri=Uri.parse(url);
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    startActivity(intent);
                }
            }
        });
        btnBack.setOnClickListener(this);
        btnRefresh.setOnClickListener(this);
        btnJS.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_back:
                finish();
                break;
            case R.id.btn_js:
                break;
            case R.id.btn_refresh://重新刷新网页
                webView.reload();
                break;
        }
    }
}

WebView同步Cookie。
一个登陆页面,一个登陆成功页面。
模拟一个post请求去登陆,登录成功后,

你可能感兴趣的:(android webview的使用)