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);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android WebView使用详解

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

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

一、WebViewClient 1、概述 前面我们虽然实现了交互,但可能我们会有一个很简单的需求,就是在开始加载网页的时候显示进度条,加载结束以后隐藏进度条,这要怎么做?  这些简单的需求,...

[转]Android webview使用详解

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

Android开发之WebView组件的使用详解

网络内容 1、LoadUrl直接显示网页内容(单独显示网络图片) 2、LoadData显示中文网页内容(含空格的处理) APK包内文件 1、LoadUrl显示APK中Html和图片文件 2、...

最全Android webview使用详解

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

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

前言:念念不忘,必有回响,永远坚持你所坚持的!相关文章:1、《WebView使用详解(一)——Native与JS相互调用(附JadX反编译)》2、《WebView使用详解(二)——WebViewCli...

Android——WebView组件的使用详解

通过本专题的讲解可以了解到WebView组件的详细使用: 网络内容 1、LoadUrl直接显示网页内容(单独显示网络图片) 2、LoadData显示中文网页内容(含空格的处理) ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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