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(传入预置参数即可);

  参数有:

 

 

  

 

posted @ 2016-08-12 17:56  TheTinkerJ  阅读(220)  评论(0编辑  收藏  举报