亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android中的WebView詳細介紹

2020-04-11 11:31:49
字體:
來源:轉載
供稿:網友

Android中WebView的詳細解釋:

1. 概念:

WebView(網絡視圖)能加載顯示網頁,可以將其視為一個瀏覽器。它使用了WebKit渲染引擎加載顯示網頁。

2. 使用方法:

(1).實例化WebView組件:
A.在Activity中實例化WebView組件。eg:

復制代碼 代碼如下:

   WebView webView = new WebView(this);

B.調用WebView的loadUrl()方法,設置WevView要顯示的網頁.eg:
復制代碼 代碼如下:

互聯網用:webView.loadUrl("http://www.google.com");
本地文件用:webView.loadUrl("file:///android_asset/XX.html");
本地文件存放在:assets 文件中

C.調用Activity的setContentView( )方法來顯示網頁視圖。
D.需要在AndroidManifest.xml文件中添加權限,否則會出現Web page not available錯誤。

復制代碼 代碼如下:

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

 (2).自定義WebView組件繼承WebViewClient:
A.在布局文件中聲明WebView。eg:

復制代碼 代碼如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <WebView
            android:id="@+id/webView1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </LinearLayout>


B.在Activity中實例化WebView。
C.調用WebView的loadUrl()方法,設置WebView要顯示的網頁.
D.調用setWebViewClient()方法設置WebView視圖。響應鏈接功能。
E.需要在AndroidManifest.xml文件中添加權限,否則出現Web page not available錯誤。
復制代碼 代碼如下:

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

 3. 兩種方法的區別:
(1).第一種方法:點擊鏈接是新開Android的系統browser中響應該鏈接。
(2).第二種方法:點擊鏈接由自己處理,而不是新開Android的系統browser中響應該鏈接。給WebView添加一個事件監聽對象(WebViewClient)并重寫其中的shouldOverrideUrlLoading方法:對網頁中超鏈接按鈕的響應。當按下某個連接時WebViewClient會調用這個方法,并傳遞參數:按下的url。

4. 總結:
(1). 用WebView點鏈接看了很多頁以后為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面。

復制代碼 代碼如下:

@Override
   public boolean onKeyDown(int keyCode, KeyEvent event) {
       if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
       // goBack()表示返回WebView的上一頁面
           mWebView.goBack();
           return true;
       }
       return super.onKeyDown(keyCode, event);
   }

(2). 設置WebView基本信息:

A.如果訪問的頁面中有Javascript,則webview必須設置支持Javascript。

復制代碼 代碼如下:

webview.getSettings().setJavaScriptEnabled(true); 

B.觸摸焦點起作用:
復制代碼 代碼如下:

 requestFocus();

C.取消滾動條:
復制代碼 代碼如下:

this.setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);

5. 整體代碼如下:
(1).MainActivity.java

package com.pansoft.webviewdemo;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;

import com.pansoft.webviewdemo.webView.MyWebView;

public class MainActivity extends Activity {
    private WebView mWebView = null;
    private WebSettings mSettings = null;
    /** TAG */
    private String TAG = getClass().getSimpleName();
    /** URL */
    private String FLG_URL = "http://www.baidu.com/";
    private MyWebView myWebView;

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        // 第二種方法
        init01();
        // 第一種方法
        // init02();

    }

    /**
     * 加載的是webView本身的
     */
    private void init01() {
        setContentView(R.layout.activity_main);
        mWebView =(WebView)findViewById(R.id.webView1);
        mSettings = mWebView.getSettings();
        // WebView設置支持JavaScript
        mSettings.setJavaScriptEnabled(true);
        // 加載URL
        mWebView.loadUrl(FLG_URL);
        myWebView = new MyWebView(this, mWebView);
        mWebView.setWebViewClient(myWebView);

    }

    /**
     * 加載的是系統自帶的瀏覽器
     */
    private void init02() {
        mWebView = new WebView(this);
        mSettings = mWebView.getSettings();
        mSettings.setJavaScriptEnabled(true);
        mWebView.loadUrl(FLG_URL);
        setContentView(mWebView);

    }

    @Override
    public void onBackPressed() {
        super.onBackPressed();
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
        // goBack()表示返回WebView的上一頁面
            mWebView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

}

(2).MyWebView.java

package com.pansoft.webviewdemo.webView;

import android.content.Context;
import android.graphics.Bitmap;
import android.util.Log;
import android.webkit.HttpAuthHandler;
import android.webkit.WebView;
import android.webkit.WebViewClient;

/**
 * MyWebView
 *
 * @author Administrator
 *
 */
public class MyWebView extends WebViewClient {
    private Context mContext;
    private WebView mWebView;
    private String TAG = getClass().getSimpleName();

    /**
     * 構造方法
     *
     * @param mContext
     * @param mWebView
     */
    public MyWebView(Context mContext, WebView mWebView) {
        super();
        this.mContext = mContext;
        this.mWebView = mWebView;
    }

    /**
     * 打開鏈接前的事件,為了避免再次按的時候加載的是系統自帶的瀏覽器,點擊鏈接由自己處理
     */
    // 這個函數我們可以做很多操作,比如我們讀取到某些特殊的URL,于是就可以不打開地址,取消這個操作,進行預先定義的其他操作,這對一個程序是非常必要的。
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url != null) {
            mWebView.loadUrl(url);
            Log.d(TAG, "--->shouldOverrideUrlLoading--->");

        }

        return true;
    }

    /**
     * 接收到Http請求的事件
     */
    @Override
    public void onReceivedHttpAuthRequest(WebView view,

    HttpAuthHandler handler, String host, String realm) {
        super.onReceivedHttpAuthRequest(view, handler, host, realm);
    }

    /**
     * 載入頁面開始的事件
     */
    // 這個事件就是開始載入頁面調用的,通常我們可以在這設定一個loading的頁面,告訴用戶程序在等待網絡響應。
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        super.onPageStarted(view, url, favicon);
        Log.d(TAG, "--->onPageStarted--->");
    }

    /**
     * 載入頁面完成的事件
     */
    // 同樣道理,我們知道一個頁面載入完成,于是我們可以關閉loading條,切換程序動作。
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        Log.d(TAG, "--->onPageFinished--->");
    }

    /**
     * 當瀏覽器訪問制定的網址發生錯誤時會通知我們應用程序,比如網絡錯誤。
     */
    @Override
    public void onReceivedError(WebView view, int errorCode,
            String description, String failingUrl) {
        super.onReceivedError(view, errorCode, description, failingUrl);
    }

}

(3).activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <WebView
        android:id="@+id/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

(4).權限:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频在线观看| 国产精品国产三级国产aⅴ9色| 亚洲精品成a人在线观看| 国产不卡一区二区在线播放| 亚洲新中文字幕| 国产精品久久久| 亚洲夜晚福利在线观看| 懂色av一区二区三区| 亚洲男人天堂手机在线| 欧美俄罗斯性视频| 亚洲xxx视频| 亚洲国产欧美在线成人app| 亚洲国产成人91精品| 久久综合88中文色鬼| 97香蕉久久夜色精品国产| 日韩欧美在线视频日韩欧美在线视频| 91精品久久久久久久久久久久久久| 91久久精品国产91久久| 日本午夜人人精品| 国产精品网址在线| 国产激情综合五月久久| 久久久久久高潮国产精品视| 欧美精品在线观看91| 成人女保姆的销魂服务| 日韩国产精品一区| 亚洲欧美在线免费观看| 日韩久久免费视频| 中文字幕日韩精品在线观看| 日韩欧美国产中文字幕| 亚洲欧美日本伦理| 日韩电视剧在线观看免费网站| 亚洲欧美成人一区二区在线电影| 日韩高清a**址| 精品久久久久久| 国产精品扒开腿爽爽爽视频| 91国内揄拍国内精品对白| 亚洲人在线视频| 日韩国产中文字幕| 亚洲欧美激情精品一区二区| 国产亚洲aⅴaaaaaa毛片| 成人在线精品视频| 久久久国产精品x99av| 7777精品视频| 2023亚洲男人天堂| 伊人久久精品视频| 欧美另类老女人| 成人黄色片在线| 国产一区二区黄| 亚洲精品国产品国语在线| 亚洲人在线观看| 国产玖玖精品视频| 国产三级精品网站| 97av在线视频免费播放| 日韩精品亚洲精品| 国产美女久久精品香蕉69| 成人精品久久一区二区三区| 亚洲一区二区精品| 久久久欧美一区二区| 福利视频第一区| 国产精选久久久久久| 亚洲japanese制服美女| 久久精品中文字幕电影| 国产色婷婷国产综合在线理论片a| 国产丝袜一区视频在线观看| 日本精品一区二区三区在线| 亚洲免费视频观看| 日韩中文字幕精品视频| 国产在线日韩在线| 中文字幕亚洲情99在线| 欧美日韩亚洲天堂| 国产在线日韩在线| 91av在线播放视频| 色综合天天综合网国产成人网| 欧美另类第一页| 欧美午夜视频在线观看| 国产一区二区三区在线看| 欧美性xxxxxx| 中文字幕在线看视频国产欧美在线看完整| 91在线中文字幕| 中文字幕日韩在线观看| 欧美极品少妇全裸体| 日本欧美在线视频| 欧美高跟鞋交xxxxxhd| 成人免费淫片视频软件| 欧美黄色片在线观看| 亚洲国产精品高清久久久| 亚洲欧美日韩在线高清直播| 欧美老妇交乱视频| 4438全国亚洲精品在线观看视频| 国产精品久久久91| 夜色77av精品影院| 国产欧美日韩精品专区| 亚洲精品成人网| 精品国产91久久久久久| 亚洲美女福利视频网站| 日韩精品视频在线免费观看| 日韩av电影免费观看高清| 亚洲最大中文字幕| 国产精品热视频| 精品国产电影一区| 久久久久久久久久久91| 亚洲aⅴ男人的天堂在线观看| 亚洲xxxx在线| 欧美激情乱人伦| 欧美激情免费在线| 91网站在线免费观看| 欧美色道久久88综合亚洲精品| 91在线无精精品一区二区| 欧美日韩福利电影| 亚洲精品电影在线观看| 亚洲香蕉av在线一区二区三区| 亚洲色图欧美制服丝袜另类第一页| 中文字幕亚洲无线码在线一区| 欧美人与性动交a欧美精品| 国产精品丝袜久久久久久不卡| 久久理论片午夜琪琪电影网| 欧美亚洲激情视频| 秋霞成人午夜鲁丝一区二区三区| 亚洲国产精品99久久| 亚洲美女免费精品视频在线观看| 久久国产精品久久久久久| 中文欧美在线视频| 亚洲www在线观看| 都市激情亚洲色图| 欧美在线观看网站| 欧美中文字幕精品| 午夜精品久久久久久久久久久久| 欧美一级淫片丝袜脚交| 国产精品高潮视频| 国产亚洲xxx| 色yeye香蕉凹凸一区二区av| 亚洲欧美在线播放| 欧美中文字幕在线| 欧美视频在线观看免费网址| 国产999精品久久久| 久久人人爽人人爽爽久久| 伊是香蕉大人久久| 亚洲综合自拍一区| 668精品在线视频| 亚洲综合中文字幕在线观看| 日韩在线免费观看视频| 国内精品免费午夜毛片| 成人国内精品久久久久一区| 神马国产精品影院av| 亚洲肉体裸体xxxx137| 国内精品久久久久影院 日本资源| 国产美女主播一区| 日韩精品999| 欧美性猛交xxxxx免费看| 日韩欧美极品在线观看| 一本色道久久综合狠狠躁篇怎么玩| 日韩精品欧美国产精品忘忧草| 欧美黑人性生活视频| 精品调教chinesegay| 日韩中文字幕免费视频| 国产日韩在线精品av| 国内外成人免费激情在线视频| 国产视频精品va久久久久久| 91午夜在线播放| 久久精品中文字幕一区| 亚洲第一国产精品| 久久国内精品一国内精品| 久久精品视频在线播放| 成人精品aaaa网站|