WebView随学笔记

对于WebView而言我们需要掌握的内容是:

/** 学习目标:webView
 * 1).将WebView加入到应用中
 * 2).使用WebView加载页面
 * 3).获取网络访问
 * 4).在WebView中使用Javascript
 * 5).处理页面导航
 * 6).后退与前进
 * 7).判断页面加载过程
 * 8).WebView缓存的运用
 */

对此一一记录

1).加入WebView:  XML布局文件中添加&在Activity中绑定

    <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/webView"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

  

2).使用WebView加载页面:使用webview.loadUrl(url)方法

 webview.loadUrl("http://www.baidu.com");

3).获取网络访问权限:在AndroidManifest.xml文件中添加

<uses-permission android:name="android.permission.INTERNET"/>

整文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.as.webviewtest">
    <!--网络权限-->
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

4).在WebView中使用JavaScript

  需要获取一个WebSettings的实例,调用其方法setJavaScriptEnabled(true);

  代码:

WebSettings ws=webview.getSettings();
ws.setJavaScriptEnabled(true);

5).处理页面导航,不使用系统本地浏览器或第三方浏览器(需要在获取网络访问权限的前提下):

  调用webview.setWebViewClient(new WebViewClient(){});通过重写方法来修改

  代码:

webview.setWebViewClient(new WebViewClient(){
            //重写方法
     public boolean shouldOverrideUrlLoading(WebView view, String url) {
                //true在WebView中打开,false在系统或第三方浏览器中打开
                view.loadUrl(url);
                return true;
            }
        });

6).后退与前进:

  重写onKeyDown事件,主要是webview的goback()和goforward()方法

  代码:

  public boolean onKeyDown(int keyCode, KeyEvent event) {
      if(keyCode==KeyEvent.KEYCODE_BACK){
          if(webview.canGoBack()){
                webview.goBack();
                return true;
          }else{
                System.exit(0);
          }
      }

7).判断页面加载过程:

   调用&重写

   代码:

webview.setWebChromeClient(new WebChromeClient(){
    public void onProgressChanged(WebView view,int newProgress){
        if(newProgress==0){
        //加载完成
        }else{
        //加载中
        }
    }
});    

8).缓存的运用:

  WebSettings.setCacheMode(传入预置参数即可);

  参数有:

  

时间: 2024-12-17 17:16:41

WebView随学笔记的相关文章

C#&amp;java重学笔记(函数)

C#部分  1.写在函数定义的()中的关键字: a.params关键字:用来满足函数的参数为数组时,而数组的长度不固定的情况.且该关键字只能用来修饰数组型参数.这样一修饰,就达成了类似JavaScript函数书写参数的特点. b.ref关键字:让参数按引用传递,类似于C中的传指针参数.比如经典的数值交换函数,你传形参和传指针的结果应该知道,加了ref关键字就相当于传指针.注意:ref只接收变量做参数,你字面量怎么弄指针?而且该变量必须初始化!     c.out关键字:功能和ref一样,区别在于

DB2 v9.1 RACF 瞎学笔记

一.DB2 RACF control module 定义在prefix.SDSNSAMP(DSNXRXAC)中,查找一下数据集 符合*.SDSNSAMP数据集有两个,我这里使用的DB V9,自然prefix就是DSN910了 二.进入DSN910.SDSNSAMP,查看DSNXRXAC成员. 可以知道几个非常有用的值 : &CLASSOPT=2 One set of classes for ALL subsys &CLASSNMT='DSN' DB2 Class Name &CHA

C#&amp;java重学笔记(面向对象)

C#部分 1.C#有一个internal关键字,指字段可以同一个程序集中访问,出了程序集不行.还有一个protected internal(没有先后之分)修饰词,指只能在同一个程序集中的子类访问 2.abstract和virtual修饰词: abstract用来修饰类和方法,表 抽象.抽象类中的方法可以不抽象,但是抽象方法所在的类必抽象.且抽象方法不得被实现,即不能用{}表示函数体.而且抽象类只有被继承才能体现它的作用,同时子类必须override父类的抽象方法!      virtual用来修

Javascript思学笔记(一)

理论知识点一 一个完整的javascript实现应该由下列三个不同的部分组成1.核心(ECMAScript)2.文档对象模型(DOM)3.浏览器对象模型(BOM) 二.HTML4.01的Script有6个属性,了解一下1.async:表示应该立即下载脚本,但不应妨碍页面中的其他操作,比较下载其他资源或等待加载其他脚本.只对外部脚本文件有效2.charset:代码的字符集.大多数浏览器忽略它的值 ,很少有人用3.defer:表示脚本可以延迟到文档完全被解析和显示之后再执行.4.language:已

C#&amp;java重学笔记(泛型)

C#部分: 1.泛型的出现主要用于解决类.接口.委托.方法的通用性,通过定义泛型类.接口.委托.方法,可以让不同类型的数据使用相同运算规则处理数据,方便了开发. 2.利用System.Nullable<T>泛型可以生成可空的值类型变量,值类型的可空泛型可以简写为关键字加问号,如:int? val=new int?(); 3.关于布尔类型的泛型可空& |操作,我们可以知道,如果关心不关心操作数是否为空就能得出结果,那么空值就是无所谓的. 4.可空的泛型值类型的HashValue属性值为t

沈逸老师ubuntu速学笔记(2)-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展

1.编译安装apache2.4.20 1 第一步: ./configure --prefix=/usr/local/httpd --enable-so 2 第二步: make 3 第三步: sudo make install 2.编译安装libiconv    到这去下载,并编译安装    http://www.gnu.org/software/libiconv/#TOCdownloading 1 第一步:./configure --prefix=/usr/local 2 第二步: make 3

Scala快学笔记(二)

一,基本概念 1,映射 Map与HashMap与TreeMap,SotredMap等区别: 1.HashMap键无序,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,在Map 中插入.删除和定位元素,HashMap 是最好的选择: 2.LinkedHashMap 是HashMap的一个子类,键保存了插入的顺序,使用Iterator遍历时,得到的也是插入顺序的记录: 3.TreeMap默认按键的升序排序,可以定制. 4.HashTable 线程安全,键不能为nu

Linux之:Ubuntu速学笔记(1)

撰写日期:2016-7-2 17:11:28 Saturday 课程资源:  web程序员角度ubuntu自修速学课程 链接来源:程序员在囧途, VMware: VMware Workstation12 Ubuntu: Ubuntu16.04-64位 写文章之前要感谢 囧途讲师(以后简称“囧师”,望叔见谅)[沈逸]“沈叔”,O(∩_∩)O哈哈~ 叔的详细讲解和谆谆教导,让我们这样的小白快速学到很多珍贵的技能,谢谢叔! Ubuntu的安装与操作就不再赘述了,本小白现在常用的是桌面的,, 如果使用T

[Computing Advertising] 计算广告学笔记之基础概念

因为工作需要,最近一直在关注计算广告学的内容.作为一个新手,学习计算广告学还是建议先看一下刘鹏老师在师徒网的教程<计算广告学>. 有关刘鹏老师的个人介绍:刘鹏现任360商业产品首席架构师,负责 360 商业化变现的产品和技术.曾任微软亚洲研究院研究员.雅虎北京研究院高级科学家 ( 负责全球搜索广告.受众定向广告.个性化内容等项目 ) . MediaV 首席科学家 ( 负责算法和数据平台 ) .以及搜狐集团研究院负责人,WOT 技术峰会特约讲师. 广告其实是大数据的产物,是大数据最实际的应用.我