WebView使用详解

原创 2015年07月09日 16:33:50

通过Intent实现网络访问

Android中可以通过Intent实现网络访问,使用改方法,手机将使用手机内默认浏览器进行网页访问,在xml中声明WebView控件,具体代码如下:

Uri uri = Uri.parse(url);
            Intent intentWeb = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intentWeb);
Uri uri = Uri.parse(url);
            Intent intentWeb = new Intent(Intent.ACTION_VIEW, uri);
            startActivity(intentWeb);

加载本地网页

可以把自定义网页文件放到工程的assets中,通过WebView显示本地网页,具体代码如下:

webView.loadUrl("file:///android_asset/index.html");

注:index.html为assets文件夹中网页文件名

WebView访问网页

加载网页与设置

通过loadUrl加载网址:

private String url = "http://www.hchstudio.cn";
webView.loadUrl("file:///android_asset/index.html");

使WebView获得焦点:

webView.requestFocus();

WebSettings使用

Android 提供管理WebView的一些setting的类WebSettings,在WebView对象被创建时WebSettings对象也会被同时创建,并附有默认的settings值. WebSettings对象可以通过WebView.getSettings()获得。WebSettings的生命周期同WebView生命周期相同,如果WebView被destroy 则WebSettings应该被释放,否则如果使用WebSettings继续再操作的话, 会抛出异常IllegalStateException。

WebSettings webSettings = webView.getSettings();
//启用javascript
webSettings.setJavaScriptEnabled(true);
//webView有限使用缓存加载
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);

setWebViewClient的使用

WebViewClient帮助WebView去处理一些页面控制和请求通知

webView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // TODO Auto-generated method stub
        view.loadUrl(url);
        return true;
//      返回为true时,控制网页在webview中打开,为false时,调用系统浏览器打开
    }
//  网页下载开始
    @Override
    public void onPageStarted(WebView view, String url,
                        Bitmap favicon) {
        // TODO Auto-generated method stub
        super.onPageStarted(view, url, favicon);
    }
//  网页下载结束
    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);
    }
});

setWebChromeClient

WebChromeClient在页面加载中设置处理问题,例如进度条

webView.setWebChromeClient(new WebChromeClient(){
    @Override
    public void onProgressChanged(WebView view, int newProgress) {
        // TODO Auto-generated method stub
//      newProgress为1-100之间的整数
        if(newProgress==100){
//      网页加载完毕
            if(pd!=null&& pd.isShowing()){
                pd.dismiss();
                pd=null;
            }
        }else{
//          网页正在加载
            showpd(newProgress);
        }
        super.onProgressChanged(view, newProgress);
    }
});
private void showpd(int newProgress) {
    // TODO Auto-generated method stub
    if(pd ==null){
        pd = new ProgressDialog(this);
        pd.setTitle("网页加载");
        pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        pd.setProgress(newProgress);
        pd.show();
    }else{
        pd.setProgress(newProgress);
    }
}

改变返回逻辑

设置WebView返回时为上一个浏览的网页

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()){
        Toast.makeText(this, webView.getUrl(), Toast.LENGTH_SHORT).show();
        webView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

WebView使用详解(三)——WebChromeClient与LoadData补充

前言: 我不会忘了我 忘了我曾说过一定会得到的梦想 ——《老大》小柯 一、WebChromeClient1、概述(1)、 与WebViewClient的区别很多同学一看到这里有Chro...

WebView使用详解(二)——WebViewClient与常用事件监听

前言:生活的艰难,更会激发对梦想的渴望,但艰难的生活却往往会成为梦想的绊脚石上篇给大家简单讲了Webview中Native代码与JS相互调用的方法,这篇我们再讲讲有关各种拦截与处理的东东。一、WebV...

WebView使用详解(一)——Native与JS相互调用(附JadX反编译)

一直在用WebView,还没有系统的总结过它的用法,下面就系统的总结下,分享给大家 一、基本用法 1、加载在线URL [java] view plain copy   ...

Android WebView使用详解

最近项目中用到WebView, 就根据自己项目的需求重写了个WebView。 下面简单介绍一下使用情况,以作记忆~~ 前面本人写过一个WebView加载进度显示的博客,有需要的可以去看看:WebVi...

[转]Android webview使用详解

原文地址 打开网页时不调用系统浏览器, 而是在本WebView中显示: 复制代码 mWebView.setWebViewClient(new WebViewClient(){ @Ove...

最全Android webview使用详解

打开网页时不调用系统浏览器, 而是在本WebView中显示: 复制代码 mWebView.setWebViewClient(new WebViewClient(){ @Override ...

android WebView使用实例详解

这里我们简单的实现一个功能,就是用户输入一个网址,点击开始按妞即可在APP内实现加载页面。 1. 布局文件activity_main.xml ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WebView使用详解
举报原因:
原因补充:

(最多只允许输入30个字)