关于android的webview

之前对于webview的认识很肤浅,这次正好研究一下:

  1. 在webview当中加载网址的时候,使用load.url(""),但是要记得在AndroidManifest.xml中对其进行配置。配置语句为:<uses-permission android:name="android.permission.INTERNET" />
  2. 重载shouldOverrideUrlLoading(WebView view, String url),当时链接的时候,在本软件进行加载而不是跳到浏览器那里。
  3. 返回键的处理:我们打开多个网页后,点击返回目的是返回上一个网页,但是事实上会关闭当前activity,于是要对返回键做处理.

    @Override

    public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {

    webView.goBack();

    return true;

    } else

    return super.onKeyDown(keyCode, event);

    }

  4. 网页前进按钮。

    if(webView.canGoForward()){

    webView.goForward();

    }else{

    Toast("已经是最后一页了,不能再前进了");

    }

  5. 点击刷新按钮的时候,执行webview.reload();
  6. 如果想在页面加载的时候添加提示信息,可以复写webclient的

    onPageStarted(WebView view, String url, Bitmap favicon){

    }

    onPageFinished(WebView view, String url){}

    例子:

    @Override 
                public void onPageStarted(WebView view, String url, Bitmap favicon) { 
                    if(progDlg == null || !progDlg.isShowing()){ 
                        progDlg = new ProgressDialog(ctx); 
                       progDlg.setMessage("正在加载,请稍候。。。"); 
                    } 
                   progDlg.show(); 
                }

@Override 
           public void onPageFinished(WebView view, String url) { 
                progDlg.dismiss(); 
            }

7.如果想知道加载进度,需要调用另一个类WebChromeClient。

例子:

webView.setWebChromeClient(new WebChromeClient(){ 
 
            @Override 
           public void onProgressChanged(WebView view, int newProgress) { 
                Message msg = new Message(); 
                                msg.what = 200; 
                                msg.obj = newProgress; 
                                handler.sendMessage(msg); 
            } 
}

然后在handler里更新进度条。

private Handler handler = new Handler(){ 
        public void handleMessage(android.os.Message msg) { 
            switch (msg.what) { 
            case 200: 
                int progress = (Integer) msg.obj; 
                progressBar.setProgress(progress); 
               break; 
 
            default: 
               break; 
            } 
        }; 
    };

关于android的webview

时间: 2024-10-13 19:19:15

关于android的webview的相关文章

Android一组WebView的随机,顺序,倒序加载

写了个应用,实现了一组WebView的顺序,倒序,和随机加载.之中使用了延时,为什么要使用呢?请看下图: package com.zms.csdngo; import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.wifi.WifiManager; i

Android的WebView通过JS调用java代码

做项目时候会遇到我们用WebView 打开一个web,希望这个web可以调用自己的一些方法,比如我们在进一个web页面,然后当我们点击web上的某个按钮时,希望能判断当前手机端是否已经登录,如果未登录,那么就会跳转到登录页面(登陆页面是另一个Activity).这个时候,一个简单的做法就是在按钮动作事件的js上调用java的方法,从而起到判断是否登录,并决定是否跳转到另一个页面. Google的WebView为我们提供了 addJavascriptInterface(Object obj, St

android使用Webview上传图片

package com.example.webview; import java.io.File; import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.annotation.SuppressLint;import android.app.Activity;import android.content.Intent;import android.webkit.Val

Android调用WebView

mWebView.setWebViewClient(new WebViewClient(){                           public boolean shouldOverrideUrlLoading(WebView view, String url) {                               view.loadUrl(url);                               return true;                  

Android中WebView开发汇总

1 去掉WebView的白色背景 2 WebView的超时处理 3 WebView加载网络PDF资源 4 图片自适应WebView大小(铺满WebView) 5 WebView利用UserAgent传递SESSIONID 6 监听WebView滑动到底部 7 WebView长按后调用文字复制功能 8 Android硬件加速以及WebView的onPause,onResume,OnDestroy 9 WebView不能加载Twitter的问题 10 WebView加载本地SD卡上的图片 11 We

Android中webView的基础使用(一)

WebView是View的一个子类,可以让你在activity中显示网页. 可以在布局文件中写入WebView:比如下面这个写了一个填满整个屏幕的WebView: 1 <?xml version="1.0" encoding="utf-8"?> 2 <WebView xmlns:android="http://schemas.android.com/apk/res/android" 3 android:id="@+id

Android之 -WebView实现离线缓存阅读

前言 本篇博客要实现的是一个离线下载和离线阅读的功能,这是很多阅读类app都常见的一个功能,典型的应用就是网易新闻.什么是离线下载?其实这个概念是比较模糊,是离线之后下载呢,还是下载之后离线,但稍微有点脑子的人都知道没有网络之后怎么下载呢?所以离线下载这个功能是”在有网络的情况下,把资源下载到本地“,离线阅读就是”在没有网络或者网络不好的时候,阅读本地好缓存的文章资源“.这样就很清楚我们要的这两个具体的功能需求了. 实现思路 小巫这里提供两个实现思路,一个就是自己写逻辑,一个是通过WebView

Android项目---webView

之前用webView的时候,只知道它可以加载出html页面,竟然不知道,它也可以与js进行交互. WebView是一个网络视图,能加载显示网页,可以将它看作一个浏览器.它使用WebKit渲染引擎加载显示网页 在Andriod中很多控件都有两种方法得到,一种是在java文件中实例化:一种是在布局文件中声明 第一种方法的步骤:1.在要Activity中实例化WebView组件:WebView webView = new WebView(this);2.调用WebView的loadUrl()方法,设置

Android 中Webview 自适应屏幕

随笔 - 478  文章 - 3  评论 - 113 Android 中Webview 自适应屏幕 webview中右下角的缩放按钮能不能去掉 settings.setDisplayZoomControls(false); //隐藏webview缩放按钮 让Webview加载的页面居中显示有我知道的几种方法 第一种方法: WebSettings settings = webView.getSettings(); settings.setLayoutAlgorithm(LayoutAlgorith

Android中WebView的相关使用

近期做的项目中,遇到个非常棘手的问题: 客户给我的数据是有限制的,因此,在返回某条详细页面内容的时候,他仅仅能给我一个html片段,里面包括 文字,图片以及附件的下载地址.假设网页模版规范的爱比較好说,可是他给我的数据中,不确定的因素非常多: 比方 可能没有图片,图片和文字穿插在一起,最为重要的是html便签他的嵌套层次和标签个数都是不确定的. 假设我採用解析html提取内容出来的话,预计就掉进坑里了....... 但实际情况中,打算server先将客户代码的标签属性删除,仅仅剩骨头,但结果还是