久久精品国产精品国产精品污,男人扒开添女人下部免费视频,一级国产69式性姿势免费视频,夜鲁夜鲁很鲁在线视频 视频,欧美丰满少妇一区二区三区,国产偷国产偷亚洲高清人乐享,中文 在线 日韩 亚洲 欧美,熟妇人妻无乱码中文字幕真矢织江,一区二区三区人妻制服国产

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WebView完全解读

發布時間:2025/3/21 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebView完全解读 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

WebView控件可以在自己的應用程序中顯示本地或者Internet上的網頁。

WebView是一個使用WebKit引擎(4.4之后基于Chromium)的瀏覽器控件。因此可以將WebView當做一個完整的瀏覽器使用。

WebView不僅支持HTML、CSS等靜態元素,還支持JavaScript,而且在JavaScript中還可以調用Java的方法。

官方文檔

Building Web Apps in WebView

常用類:

僅列舉日常開發中常用的幾個類和常用方法,其余請自行查閱官方API。

WebView官方API


WebChromeClient:輔助WebView處理Javascript的對話框、網站圖標、網站title、加載進度等! 部分方法如下:


WebViewClient:輔助WebView處理各種通知與請求事件! 部分方法如下:


WebSettings:WebView相關配置的設置,比如setJavaScriptEnabled()設置是否允許JS腳本執行 部分方法如下:

方法說明:

  • loadUrl():直接顯示網頁內容(單獨顯示網絡圖片),一般不會出現亂碼。
  • loadData(data, “text/html”, “UTF-8”):用來加載URI格式的數據,不能通過網絡來加載內容, 不能加載圖片,而且經常會遇到亂碼的問題,我們知道String類型的數據主要是Unicode編碼的, 而WebView一般為了節省資源使用的是UTF-8編碼,盡管我們按上面寫了,但是還需要為webView設置: webview.getSettings().setDefaultTextEncodingName(“UTF -8”);
  • loadDataWithBaseURL(baseUrl, string, “text/html”, “utf-8”, null):loadData類的一個 增強類,可以加載圖片,baseUrl為你存儲的圖片路徑,而且只需在這里設置utf-8就可以解決亂碼 問題了。

功能演示

加載之前顯示進度框-重寫WebViewClient.onPageStarted()

可以重寫onPageStarted 方法

webView.setWebViewClient(new WebViewClient() {// 設置WebView點擊打開的網頁在當前界面顯示,而不是跳到新的瀏覽器中@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {LogUtils.e("onPageStarted");showProgressDialog();}@Overridepublic void onPageFinished(WebView view, String url) {LogUtils.e("onPageFinished");closeProgressDialog();}@Overridepublic void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {super.onReceivedError(view, request, error);LogUtils.e("onReceivedError");closeProgressDialog();}});

根據URL加載網頁-直接在Activity上加載一個WebView

運行圖

WebView00.java

package com.turing.base.activity.webview;import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast;import com.apkfuns.logutils.LogUtils;/*** 根據URL加載網頁-直接在Activity上加載一個WebView*/ public class WebView00 extends AppCompatActivity {private WebView webView;private long exitTime = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 初始化webViewwebView = new WebView(this);webView.setWebViewClient(new WebViewClient() {// 設置WebView點擊打開的網頁在當前界面顯示,而不是跳到新的瀏覽器中@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}});// 設置WebView屬性,允許執行JS腳本,不然加載出來的網頁很難看webView.getSettings().setJavaScriptEnabled(true);// 調用LoadUrl,載入urlwebView.loadUrl("http://www.baidu.com");// 調用Activity的setContentView 將webView 顯示出來setContentView(webView);}/*** 重寫回退按鈕的時間,當用戶點擊回退按鈕:* 1.webView.canGoBack()判斷網頁是否能后退,可以則goback()* 2.如果不可以連續點擊兩次退出App,否則彈出提示Toast*/@Overridepublic void onBackPressed() {if (webView.canGoBack()) {webView.goBack();} else {// 第一次的差,肯定大于2S,此時,彈出Toast,將當前時間設置給exitTime,然后再進行比較if (System.currentTimeMillis() - exitTime > 2000) {Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();} else {/*** finish():結束當前Activity,不會立即釋放內存。遵循android內存管理機制。* exit():結束當前組件如Activity,并立即釋放當前Activity所占資源。* killProcess():結束當前組件如Activity,并立即釋放當前Activity所占資源。*/// 并不能徹底退出APP,只是會結束當前Act,釋放資源LogUtils.e("PID:" + android.os.Process.myPid());android.os.Process.killProcess(android.os.Process.myPid());System.exit(0);}}} }

根據URL加載網頁-布局代碼中設置WebView

運行圖

WebView01.java

package com.turing.base.activity.webview;import android.annotation.TargetApi; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;import com.turing.base.R;public class WebView01 extends AppCompatActivity implements View.OnClickListener {private Button btn_back;private TextView txt_title;private Button btn_top;private Button btn_refresh;private WebView wView;private long exitTime = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_web_view01);btn_back = (Button) findViewById(R.id.btn_back);txt_title = (TextView) findViewById(R.id.txt_title);btn_top = (Button) findViewById(R.id.btn_top);btn_refresh = (Button) findViewById(R.id.btn_refresh);wView = (WebView) findViewById(R.id.wView);// 設置WebView屬性,允許執行JS腳本,不然加載出來的網頁很難看wView.getSettings().setJavaScriptEnabled(true);wView.loadUrl("http://www.baidu.com");wView.setWebChromeClient(new WebChromeClient() {//這里設置獲取到的網站title@Overridepublic void onReceivedTitle(WebView view, String title) {super.onReceivedTitle(view, title);txt_title.setText(title);}});wView.setWebViewClient(new WebViewClient() {//在webview里打開新鏈接@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}});btn_back.setOnClickListener(this);btn_refresh.setOnClickListener(this);btn_top.setOnClickListener(this);}@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_back:finish(); //關閉當前Activitybreak;case R.id.btn_refresh:wView.reload(); //刷新當前頁面break;case R.id.btn_top:wView.setScrollY(0); //滾動到頂部break;}}@Overridepublic void onBackPressed() {if (wView.canGoBack()) {wView.goBack();} else {if ((System.currentTimeMillis() - exitTime) > 2000) {Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();} else {finish();}}}}

activity_web_view01.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><RelativeLayout android:layout_width="match_parent"android:layout_height="48dp"android:background="#2D97CB"><Button android:id="@+id/btn_back"android:layout_width="64dp"android:layout_height="48dp"android:layout_alignParentLeft="true"android:background="@android:color/transparent"android:text="Back" /><Button android:id="@+id/btn_top"android:layout_width="64dp"android:layout_height="48dp"android:layout_alignParentRight="true"android:background="@android:color/transparent"android:text="回頂部" /><Button android:id="@+id/btn_refresh"android:layout_width="64dp"android:layout_height="48dp"android:layout_toLeftOf="@id/btn_top"android:background="@android:color/transparent"android:text="刷新" /><TextView android:id="@+id/txt_title"android:layout_width="match_parent"android:layout_height="48dp"android:layout_toLeftOf="@id/btn_refresh"android:layout_toRightOf="@id/btn_back"android:gravity="center"android:singleLine="true"android:text="文章標題"android:textColor="#FFFFFF"android:textSize="18sp" /></RelativeLayout><WebView android:id="@+id/wView"android:layout_width="match_parent"android:layout_height="match_parent" /></LinearLayout>

WebView滾動事件的監聽

監聽滾動事件一般都是設置setOnScrollChangedListener,可惜的是 WebView并沒有給我們提供這樣的方法,但是我們可以重寫WebView,覆蓋里面的一個方法: protected void onScrollChanged(final int l, final int t, final int oldl,final int oldt){} 然后再對外提供一個接口~

運行圖

MyWebView.java

package com.turing.base.activity.webview;import android.content.Context; import android.util.AttributeSet; import android.webkit.WebView;/*** MyApp** @author Mr.Yang on 2016-03-24 09:37.* @version 1.0* 監聽滾動事件一般都是設置setOnScrollChangedListener,* 可惜的是 WebView并沒有給我們提供這樣的方法,* 但是我們可以重寫WebView,覆蓋里面的一個方法:* protected void onScrollChanged(final int l, final int t,* final int oldl,final int oldt){}* 然后再對外提供一個接口*/ public class MyWebView extends WebView {/*** 接口對象*/private OnScrollChangedCallback onScrollChangedCallback;/*** 構造函數** @param context*/public MyWebView(Context context) {super(context);}/*** 構造函數** @param context*/public MyWebView(Context context, AttributeSet attrs) {super(context, attrs);}/*** 構造函數** @param context*/public MyWebView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}/*** get方法** @return*/public OnScrollChangedCallback getOnScrollChangedCallback() {return onScrollChangedCallback;}/*** set方法** @param onScrollChangedCallback*/public void setOnScrollChangedCallback(OnScrollChangedCallback onScrollChangedCallback) {this.onScrollChangedCallback = onScrollChangedCallback;}/*** 重寫onScrollChanged方法** @param l* @param t* @param oldl* @param oldt**/@Overrideprotected void onScrollChanged(int l, int t, int oldl, int oldt) {super.onScrollChanged(l, t, oldl, oldt);if (onScrollChangedCallback != null) {onScrollChangedCallback.onScroll(l - oldl, t - oldt);}}/*** 對外接口*/public static interface OnScrollChangedCallback {//這里的dx和dy代表的是x軸和y軸上的偏移量,也可以自己把l, t, oldl, oldt四個參數暴露出來public void onScroll(int dx, int dy);} }

WebViewScrollChanged.java

package com.turing.base.activity.webview;import android.annotation.TargetApi; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.Toast;import com.turing.base.R;public class WebViewScrollChanged extends AppCompatActivity {private MyWebView myWebView;private Button toTopBtn;private long exitTime = 0;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_web_view_scroll_changed);// 初始化組件myWebView = (MyWebView) findViewById(R.id.id_webview);toTopBtn = (Button) findViewById(R.id.btn_icon);// 加載webViewmyWebView.getSettings().setJavaScriptEnabled(true);myWebView.loadUrl("http://sports.sina.com.cn/");myWebView.setWebViewClient(new WebViewClient() {//在webview里打開新鏈接@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}});// 當頁面發生滾動,顯示ButtonmyWebView.setOnScrollChangedCallback(new MyWebView.OnScrollChangedCallback() {@Overridepublic void onScroll(int dx, int dy) {if (dy > 0) {toTopBtn.setVisibility(View.VISIBLE);} else {toTopBtn.setVisibility(View.GONE);}}});toTopBtn.setOnClickListener(new View.OnClickListener() {@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)@Overridepublic void onClick(View v) {myWebView.setScrollY(0);toTopBtn.setVisibility(View.GONE);}});}@Overridepublic void onBackPressed() {if (myWebView.canGoBack()) {myWebView.goBack();} else {if ((System.currentTimeMillis() - exitTime) > 2000) {Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();} else {finish();}}} }

activity_web_view_scroll_changed.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><!--使用自定義的WebView方便監聽滾動事件--><com.turing.base.activity.webview.MyWebView android:id="@+id/id_webview"android:layout_width="match_parent"android:layout_height="match_parent"></com.turing.base.activity.webview.MyWebView><Button android:id="@+id/btn_icon"android:layout_width="64dp"android:layout_height="64dp"android:layout_alignParentBottom="true"android:layout_alignParentRight="true"android:text="回到頂部"android:visibility="gone" /></RelativeLayout>

滾動條的問題

  • setHorizontalScrollBarEnabled(false);//水平不顯示

  • setVerticalScrollBarEnabled(false); //垂直不顯示

  • setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);//滾動條在WebView內側顯示

  • setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY)//滾動條在WebView外側顯示

設置縮放以及自適應屏幕

WebView 只需要開啟設置相關屬性就可以支持縮放。

縮放自適應屏幕

WebSettings settings = webView.getSettings();// 縮放相關屬性設置settings.setUseWideViewPort(true);//設定支持viewportsettings.setLoadWithOverviewMode(true); //自適應屏幕settings.setBuiltInZoomControls(true);settings.setDisplayZoomControls(false);// 隱藏縮放控件settings.setSupportZoom(true);//設定支持縮放

取消縮放控件:

settings.setDisplayZoomControls(false);

自行設置初始的縮放比例:

webView.setInitialScale(25);//為25%,最小縮放等級,整個網頁縮放

僅對字體進行縮放

settings.setTextZoom(int); 或者 settings.setTextSize(TextSize.LARGER);

Android自帶五個可選字體大小的值:SMALLEST(50%),SMALLER(75%),NORMAL(100%),LARGER(150%), LARGEST(200%)。


獲取WebView的Cookie數據

我們都知道Cookie其實只是一個代表用戶唯一標識的字符串,情景一般是: 用戶輸入賬號密碼后,點擊登陸,用戶要拿著這個Cookie去訪問服務器提供的相關服務! 我們可以把cookie的獲取寫到onPageFinsihed的方法中,簡單的可以這樣寫:

@Override public void onPageFinished(WebView view, String url) { CookieManager cookieManager = CookieManager.getInstance();String CookieStr = cookieManager.getCookie(url);Log.e("Cookie", "Cookies = " + CookieStr);super.onPageFinished(view, url); }

設置WebView的Cookie數據

我們上面獲取到了Cookie或者通過其他途徑獲得了Cookie,如何為WebView設置Cookie呢?我們可以在需要設置Cookie的地方加入下述代碼:

CookieSyncManager.createInstance(MainActivity.this); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true); cookieManager.setCookie(url, cookies); //cookies是要設置的cookie字符串 CookieSyncManager.getInstance().sync();

上述代碼需要寫在loadUrl()之前,而且如果設置了Cookie了,盡量別再進行其他的設置 不然可能會無效,建議設置cookie的寫在webView相關設置的最后面~loadUrl()之前!

WebView和JavaScrip交互

這里我們要演示的是通過:HTML -> JS ->Java來完成HTML5端與Android手機間的 互訪。

說明:示例使用到的HTML都是以文件的形式放到assets目錄下,只需通過 loadUrl(“file:///android_asset/~”)即可加載對應的HTML~

核心步驟

  • 首先,我們定義一個類,用于將數據暴露出來,JS通過該類暴露的方法(Public)來調用Android!
  • 接著,我們在WebView所在頁面Activity,使用下述代碼:
webview.getSettings().setJavaScriptEnabled(true); webview.addJavascriptInterface(object,"name");
  • 然后js或者html中調用name.xxx調用對象里的暴露的方法:
    比如:
    < input type="button" value="Toast提示" onclick="name.showToast('提示信息');"/>

另外,setJavaScriptEnabled是在Android 4.4以前的系統才有效。


常見示例

HTML通過JS顯示Toast與普通列表的對話框

效果圖

assets/demo1.html

先準備我們的HTML文件,創建好后放到assets目錄下:

<html> <head><title>Js調用Android</title> </head><body> <input type="button" value="Toast提示" onclick="myObj.showToast('JS觸發的Toast');"/> <input type="button" value="列表對話框" onclick="myObj.showDialog();"/> </body> </html>

MyObject.java

自定義一個Object對象,js通過該類暴露的方法來調用Android

package com.turing.base.activity.webview.WebView_Js_inter;import android.content.Context; import android.support.v7.app.AlertDialog; import android.webkit.JavascriptInterface; import android.widget.Toast;import com.turing.base.R;/*** MyApp** @author Mr.Yang on 2016-03-24 14:28.* @version 1.0* 自定義一個Object對象,js通過該類暴露的方法來調用Android*/ public class MyObject {private Context context;public MyObject(Context context) {this.context = context;}/*** If you've set your targetSdkVersion to 17 or higher,* you must add the @JavascriptInterface annotation to any method* that you want available to your JavaScript (the method must also be public).* If you do not provide the annotation,* the method is not accessible by your web page* when running on Android 4.2 or higher.** @param name*///將顯示Toast和對話框的方法暴露給JS腳本調用@JavascriptInterfacepublic void showToast(String name) {Toast.makeText(context, name, Toast.LENGTH_SHORT).show();}@JavascriptInterfacepublic void showDialog() {new AlertDialog.Builder(context).setTitle("聯系人列表").setIcon(R.drawable.flag_mark_blue).setItems(new String[]{"111", "222", "333", "444", "555", "666"}, null).setPositiveButton("確定", null).create().show();} }

WebViewAndJs01.java

最后在Act中,啟用JavaScript支持,然后通過addJavascriptInterface暴露對象~

package com.turing.base.activity.webview.WebView_Js_inter;import android.annotation.SuppressLint; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.webkit.WebSettings; import android.webkit.WebView;import com.turing.base.R;/*** 啟用JavaScript支持,然后通過addJavascriptInterface暴露對象~*/ public class WebViewAndJs01 extends AppCompatActivity {private WebView webView ;@SuppressLint("JavascriptInterface")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_web_view_and_js01);webView = (WebView) findViewById(R.id.id_webview_JS);//加載assets目錄下的html文件webView.loadUrl("file:///android_asset/demo1.html");WebSettings webSettings = webView.getSettings();//①設置WebView允許調用jswebSettings.setJavaScriptEnabled(true);webSettings.setDefaultTextEncodingName("UTF-8");//②將object對象暴露給Js,調用addjavascriptInterfacewebView.addJavascriptInterface(new MyObject(WebViewAndJs01.this), "myObj");} }

activity_web_view_and_js01.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><WebView android:id="@+id/id_webview_JS"android:layout_width="match_parent"android:layout_height="match_parent"/></RelativeLayout>

HTML通過JS調用三種不同的對話框

效果圖

assets/demo2.html

先往assets目錄下塞一個html文件: demo2.html:

<html> <head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"<title>測試Js的三種不同對話框</title><script language="JavaScript">function alertFun(){alert("Alert警告對話框!");}function confirmFun(){if(confirm("訪問百度?")){location.href = "http://www.baidu.com";}else alert("取消訪問!");}function promptFun(){var word = prompt("Prompt對話框","請輸入點什么...:");if(word){alert("你輸入了:"+word)}else{alert("呵呵,你什么都沒寫!");}}</script> </head><body> <p>三種對話框的使用</p><p>Alert對話框</p><p><input type="submit" name="Submit1" value="展示1" onclick="alertFun()"/> </p><p>Confirm對話框</p><p><input type="submit" name="Submit2" value="展示2" onclick="confirmFun()"/> </p><p>Prompt對話框</p><p><input type="submit" name="Submit3" value="展示3" onclick="promptFun()"/> </p> </body> </html>

WebviewJS02.java

package com.turing.base.activity.webview.WebView_Js_inter;import android.content.DialogInterface; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.webkit.JsPromptResult; import android.webkit.JsResult; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.widget.EditText; import android.widget.TextView;import com.turing.base.R;/*** HTML通過JS調用三種不同的對話框*/ public class WebviewJS02 extends AppCompatActivity {private WebView wView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_webview_js02);wView = (WebView) findViewById(R.id.wView);//獲得WebSetting對象,支持js腳本,可訪問文件,支持縮放,以及編碼方式WebSettings webSettings = wView.getSettings();webSettings.setJavaScriptEnabled(true);webSettings.setAllowFileAccess(true);webSettings.setBuiltInZoomControls(true);webSettings.setDefaultTextEncodingName("UTF-8");//設置WebChromeClient,處理網頁中的各種js事件wView.setWebChromeClient(new MyWebChromeClient());wView.loadUrl("file:///android_asset/demo2.html");}//這里需要自定義一個類實現WebChromeClient類,并重寫三種不同對話框的處理方法//分別重寫onJsAlert,onJsConfirm,onJsPrompt方法class MyWebChromeClient extends WebChromeClient {@Overridepublic boolean onJsAlert(WebView view, String url, String message,final JsResult result) {//創建一個Builder來顯示網頁中的對話框new AlertDialog.Builder(WebviewJS02.this).setTitle("Alert對話框").setMessage(message).setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {result.confirm();}}).setCancelable(false).show();return true;}@Overridepublic boolean onJsConfirm(WebView view, String url, String message,final JsResult result) {new AlertDialog.Builder(WebviewJS02.this).setTitle("Confirm對話框").setMessage(message).setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {result.confirm();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {result.cancel();}}).setCancelable(false).show();return true;}@Overridepublic boolean onJsPrompt(WebView view, String url, String message,String defaultValue, final JsPromptResult result) {//①獲得一個LayoutInflater對象factory,加載指定布局成相應對象final LayoutInflater inflater = LayoutInflater.from(WebviewJS02.this);final View myview = inflater.inflate(R.layout.prompt_view, null);//設置TextView對應網頁中的提示信息,edit設置來自于網頁的默認文字((TextView) myview.findViewById(R.id.text)).setText(message);((EditText) myview.findViewById(R.id.edit)).setText(defaultValue);//定義對話框上的確定按鈕new AlertDialog.Builder(WebviewJS02.this).setTitle("Prompt對話框").setView(myview).setPositiveButton("確定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {//單擊確定后取得輸入的值,傳給網頁處理String value = ((EditText) myview.findViewById(R.id.edit)).getText().toString();result.confirm(value);}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {result.cancel();}}).show();return true;}} }

activity_webview_js02.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><WebView android:id="@+id/wView"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="5dp" /></RelativeLayout>

prompt_view.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextView android:id="@+id/text"android:layout_width="match_parent"android:layout_height="wrap_content" /><EditText android:id="@+id/edit"android:layout_width="match_parent"android:layout_height="wrap_content"android:scrollHorizontally="true"android:selectAllOnFocus="true" /></LinearLayout>

HTML通過JS讀取Android聯系人并顯示

思路

實現思路:通過js讀取Android手機中聯系列表,然后顯示到HTML中 當我們點擊某個電話號碼時,會直接跳轉到撥號頁面 。
實現關鍵: 利用onload()在網頁加載的時候加載相應的js腳本,而js腳本中定義的一個函數是 取出傳遞過來的對象,獲取里面的數據,通過for循環以單元行的形式打印出來!

assets/demo3.html

<html> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>顯示獲取的聯系人列表</title><script language="JavaScript">function show(jsondata) { //將傳遞過來的Json轉換為對象 var jsonobjs = eval(jsondata); //獲取下面定義的表格 var table = document.getElementById("PersonTable"); //遍歷上面創建的Json對象,將每個對象添加為 //表格中的一行,而它的每個屬性作為一列 for(var i = 0;i < jsonobjs.length;i++) { //添加一行,三個單元格: var tr = table.insertRow(table.rows.length); var td1 = tr.insertCell(0); var td2 = tr.insertCell(1); td2.align = "center"; var td3 = tr.insertCell(2); //設置單元格的內容和屬性 //其中innerHTML為設置或者獲取位于對象起始和結束標簽內的HTML //jsonobjs[i]為對象數組中的第i個對象 td1.innerHTML = jsonobjs[i].id; td2.innerHTML = jsonobjs[i].name; //為現實的內容添加超鏈接,超鏈接會調用Java代碼中的 //call方法并且把內容作為參數傳遞過去 td3.innerHTML = "<a href = 'javascript:sharp.call(\""+jsonobjs[i].phone + "\")'>" +jsonobjs[i].phone + "</a>";; } } </script> </head><!-- onload指定該頁面被加載時調用的方法,這里調用的是Java代碼中的contactlist方法--> <body style="margin:0px; background-color:#FFFFFF; color:#000000;" onload = "javascript:sharp.contactlist()"> <!--定義一個表格--> <table border = "0" width = "100%" id = "PersonTable" cellspacing = "0"><tr><td width = "15%">用戶id</td><td align = "center">姓名</td><td width = "15%">號碼</td></tr> </table> </body> </html>

業務類Contact.java

package com.turing.base.activity.webview.WebView_Js_inter;/*** MyApp** @author Mr.Yang on 2016-03-24 15:24.* @version 1.0* @desc*/ public class Contact {private String id;private String name;private String phone;public Contact() {}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}@Overridepublic String toString() {return this.id + "~" + this.name + "~" + this.phone;} }

WebViewReadContactsAct.java

package com.turing.base.activity.webview.WebView_Js_inter;import android.annotation.SuppressLint; import android.content.ContentResolver; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.support.v7.app.AppCompatActivity; import android.webkit.JavascriptInterface; import android.webkit.WebView;import com.turing.base.R;import org.json.JSONArray; import org.json.JSONObject;import java.util.ArrayList; import java.util.List;/*** 讀取聯系人** 該代碼實現的是通過js讀取Android手機中聯系列表,* 然后顯示到HTML中 當我們點擊某個電話號碼時,會直接跳轉到撥號頁面* 實現關鍵: 利用onload()在網頁加載的時候加載相應的js腳本,* 而js腳本中定義的一個函數是 取出傳遞過來的對象,* 獲取里面的數據,通過for循環以單元行的形式打印出來!*/ public class WebViewReadContactsAct extends AppCompatActivity {private WebView wView;@SuppressLint("JavascriptInterface")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_web_view_read_contacts);//設置WebView的相關設置,依次是://支持js,不保存表單,不保存密碼,不支持縮放//同時綁定Java對象wView = (WebView) findViewById(R.id.wView);wView.getSettings().setJavaScriptEnabled(true);wView.getSettings().setSaveFormData(false);wView.getSettings().setSavePassword(false);wView.getSettings().setSupportZoom(false);wView.getSettings().setDefaultTextEncodingName("UTF-8");wView.addJavascriptInterface(new SharpJS(), "sharp");wView.loadUrl("file:///android_asset/demo3.html");}//自定義一個Js的業務類,傳遞給JS的對象就是這個,調用時直接javascript:sharp.contactlist()public class SharpJS {/*** 所有的WebView方法都應該在同一個線程程中調用*/@JavascriptInterfacepublic void contactlist() {wView.post(new Runnable() {@Overridepublic void run() {try {System.out.println("contactlist()方法執行了!");String json = buildJson(getContacts());wView.loadUrl("javascript:show('" + json + "')");} catch (Exception e) {System.out.println("設置數據失敗" + e);}}});}@JavascriptInterfacepublic void call(String phone) {System.out.println("call()方法執行了!");Intent it = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone));startActivity(it);}}//將獲取到的聯系人集合寫入到JsonObject對象中,再添加到JsonArray數組中public String buildJson(List<Contact> contacts) throws Exception {JSONArray array = new JSONArray();for (Contact contact : contacts) {JSONObject jsonObject = new JSONObject();jsonObject.put("id", contact.getId());jsonObject.put("name", contact.getName());jsonObject.put("phone", contact.getPhone());array.put(jsonObject);}return array.toString();}//定義一個獲取聯系人的方法,返回的是List<Contact>的數據public List<Contact> getContacts() {List<Contact> Contacts = new ArrayList<Contact>();//①查詢raw_contacts表獲得聯系人的idContentResolver resolver = getContentResolver();Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;//查詢聯系人數據Cursor cursor = resolver.query(uri, null, null, null, null);while (cursor.moveToNext()) {Contact contact = new Contact();//獲取聯系人姓名,手機號碼contact.setId(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)));contact.setName(cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)));contact.setPhone(cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));Contacts.add(contact);}cursor.close();return Contacts;} }

activity_web_view_read_contacts.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.turing.base.activity.webview.WebView_Js_inter.WebViewReadContactsAct"><WebView android:id="@+id/wView"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="5dp" /> </RelativeLayout>

Android 4.4后WebView的一些注意事項

從Android 4.4開始,Android中的WebView不再是基于WebKit的,而是開始基于Chromium,這個改變 使得WebView的性能大幅提升,并且對HTML5,CSS,JavaScript有了更好的支持!
雖然chromium完全取代了以前的WebKit for Android,但Android WebView的API接口并沒有變, 與老的版本完全兼容。這樣帶來的好處是基于WebView構建的APP,無需做任何修改, 就能享受chromium內核的高效與強大。
對于4.4后的WebView,我們需要注意下下面這些問題:

多線程

如果你在子線程中調用WebView的相關方法,而不在UI線程,則可能會出現無法預料的錯誤。 所以,當你的程序中需要用到多線程時候,也請使用runOnUiThread()方法來保證你關于 WebView的操作是在UI線程中進行的:

runOnUiThread(newRunnable(){ @Override publicvoid run(){// Code for WebView goes here} });

線程阻塞

永遠不要阻塞UI線程,這是開發Android程序的一個真理。雖然是真理,我們卻往往不自覺的 犯一些錯誤違背它,一個開發中常犯的錯誤就是:在UI線程中去等待JavaScript 的回調。 例如:

// This code is BAD and will block the UI thread webView.loadUrl("javascript:fn()"); while(result ==null) { Thread.sleep(100); }

千萬不要這樣做,Android 4.4中,提供了新的Api來做這件事情。 evaluateJavascript() 就是專門來異步執行JavaScript代碼的。


evaluateJavascript() 方法

專門用于異步調用JavaScript方法,并且能夠得到一個回調結果。

mWebView.evaluateJavascript(script, new ValueCallback<String>() {@Overridepublic void onReceiveValue(String value) {//TODO} });

處理WebView中url的跳轉

新版WebView對于自定義scheme的url跳轉,新增了更為嚴格的限制條件。 當你實現了 shouldOverrideUrlLoading() 或 shouldInterceptRequest() 回調,WebView 也只會在跳轉url是合法Url時才會跳轉。 例如,如果你使用這樣一個url :

<a href="showProfile">Show Profile</a>

shouldOverrideUrlLoading() 將不會被調用。

正確的使用方式是:

<a href="example-app:showProfile">Show Profile</a>

對應的檢測Url跳轉的方式:

/ The URL scheme should be non-hierarchical (no trailing slashes)privatestaticfinalString APP_SCHEME ="example-app:";@Override publicboolean shouldOverrideUrlLoading(WebView view,String url){if(url.startsWith(APP_SCHEME)){urlData =URLDecoder.decode(url.substring(APP_SCHEME.length()),"UTF-8");respondToData(urlData);returntrue;}returnfalse; }

當然,也可以這樣使用:

webView.loadDataWithBaseURL("example-app://example.co.uk/", HTML_DATA,null,"UTF-8",null);

UserAgent變化

如果你的App對應的服務端程序,會根據客戶端傳來的UserAgent來做不同的事情,那么你需要注意 的是,新版本的WebView中,UserAgent有了些微妙的改變:

Mozilla/5.0 (Linux; Android 4.4; Nexus 4 Build/KRT16H) AppleWebKit/537.36(KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36

使用getDefaultUserAgent()方法可以獲取默認的UserAgent,也可以通過:

mWebView.getSettings().setUserAgentString(ua); mWebView.getSettings().getUserAgentString();

來設置和獲取自定義的UserAgent。


使用addJavascriptInterface()的注意事項

從Android4.2開始。 只有添加 @JavascriptInterface 聲明的Java方法才可以被JavaScript調用, 例如:

class JsObject {@JavascriptInterfacepublic String toString() { return "injectedObject"; } }webView.addJavascriptInterface(new JsObject(), "injectedObject"); webView.loadData("", "text/html", null); webView.loadUrl("javascript:alert(injectedObject.toString())");

Remote Debugging

新版的WebView還提供了一個很厲害的功能:使用Chrome來調試你運行在WebView中的程序 具體可以看:remote-debugging

WebView文件下載

調用其它瀏覽器下載文件

運行圖

Code

布局文件,只有一個webview,就不貼了,下面看下主Act
ProgressDialog還不嚴謹,粗略演示下~

如果存在多個應用可以下載,系統會彈出選擇框

package com.turing.base.activity.webview.WebView_Download;import android.annotation.TargetApi; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.webkit.DownloadListener; import android.webkit.WebResourceError; import android.webkit.WebResourceRequest; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient;import com.apkfuns.logutils.LogUtils; import com.turing.base.R;/*** 調用其它瀏覽器下載文件:* 只需為WebView設置setDownloadListener,* 然后重寫DownloadListener的 onDownloadStart,* 然后在里面寫個Intent,然后startActivity對應的Activity即可!*/ public class WebViewDownload extends AppCompatActivity {private WebView webView;@TargetApi(Build.VERSION_CODES.HONEYCOMB)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_web_view_download);webView = (WebView) findViewById(R.id.id_webview_download);webView.setWebViewClient(new WebViewClient() {// 設置WebView點擊打開的網頁在當前界面顯示,而不是跳到新的瀏覽器中@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {LogUtils.e("onPageStarted");showProgressDialog();}@Overridepublic void onPageFinished(WebView view, String url) {LogUtils.e("onPageFinished");closeProgressDialog();}@Overridepublic void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {super.onReceivedError(view, request, error);LogUtils.e("onReceivedError");closeProgressDialog();}});WebSettings settings = webView.getSettings();// 允許執行JS腳本settings.setJavaScriptEnabled(true);// 縮放相關屬性設置settings.setUseWideViewPort(true);//設定支持viewportsettings.setLoadWithOverviewMode(true); //自適應屏幕settings.setBuiltInZoomControls(true);settings.setDisplayZoomControls(false);// 隱藏縮放控件settings.setSupportZoom(true);//設定支持縮放// 載入URLwebView.loadUrl("http://www.oschina.net/app");// 然后,找到下載的地方,這個時候點擊下載,就可以調用手機內置的瀏覽器下下載了//WebView默認沒有開啟文件下載的功能,// 如果要實現文件下載的功能,需要設置WebView的DownloadListenewebView.setDownloadListener(new DownloadListener() {@Overridepublic void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {Uri uri = Uri.parse(url);Intent intent = new Intent(Intent.ACTION_VIEW, uri);startActivity(intent);}});}/*** 載入前加載*/ProgressDialog mDialog;private void showProgressDialog() {mDialog = new ProgressDialog(this);mDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);//設置風格為圓形進度條mDialog.setMessage("正在加載 ,請等待...");mDialog.setIndeterminate(false);//設置進度條是否為不明確mDialog.setCancelable(true);//設置進度條是否可以按退回鍵取消 默認truemDialog.setCanceledOnTouchOutside(false);//設置在點擊Dialog外是否取消Dialog進度條 默認truemDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {@Overridepublic void onDismiss(DialogInterface dialog) {mDialog = null;}});mDialog.show();}private void closeProgressDialog() {mDialog.dismiss();mDialog = null;} }

自己寫線程下載文件

當然,你可能不想把下載文件放到默認路徑下,或者想自己定義文件名等等,你都可以自己來寫 一個線程來下載文件,實現示例代碼如下:

DownLoadThread.java

package com.turing.base.activity.webview.WebView_Download;import android.os.Environment;import com.apkfuns.logutils.LogUtils;import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL;/*** MyApp** @author Mr.Yang on 2016-03-24 17:47.* @version 1.0* @desc*/ public class DownLoadThread implements Runnable {private String url;public DownLoadThread(String url) {this.url = url;}/*** 使用HttpURLConnection下載*/@Overridepublic void run() {// 處理下載業務邏輯LogUtils.e( "開始下載~~~~~" + url);InputStream in = null;FileOutputStream fout = null;try {// 實例化URlURL httpUrl = new URL(url);HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();conn.setDoInput(true);conn.setDoOutput(true);in = conn.getInputStream();File downloadFile, sdFile;if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {downloadFile = Environment.getExternalStorageDirectory();sdFile = new File(downloadFile, "dowload.apk");fout = new FileOutputStream(sdFile);}else{LogUtils.e("SD卡不存在或者不可讀寫");}// 緩沖區byte[] buffer = new byte[1024];int len;// 循環讀取while ((len = in.read(buffer)) != -1) {fout.write(buffer, 0, len);}LogUtils.e("下載完畢~~~~");} catch (Exception e) {e.printStackTrace();LogUtils.e("下載異常~~~~");} finally {if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}if (fout != null) {try {fout.close();} catch (IOException e) {e.printStackTrace();}}}} }

WebViewDownLoadWithSelfThread.java

package com.turing.base.activity.webview.WebView_Download;import android.annotation.TargetApi; import android.app.ProgressDialog; import android.content.DialogInterface; import android.graphics.Bitmap; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.webkit.DownloadListener; import android.webkit.WebResourceError; import android.webkit.WebResourceRequest; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient;import com.apkfuns.logutils.LogUtils; import com.turing.base.R;public class WebViewDownLoadWithSelfThread extends AppCompatActivity {private WebView webView;@TargetApi(Build.VERSION_CODES.HONEYCOMB)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_web_view_down_load_with_self_thread);webView = (WebView) findViewById(R.id.id_webview);webView.setWebViewClient(new WebViewClient() {// 設置WebView點擊打開的網頁在當前界面顯示,而不是跳到新的瀏覽器中@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {LogUtils.e("onPageStarted");showProgressDialog();}@Overridepublic void onPageFinished(WebView view, String url) {LogUtils.e("onPageFinished");closeProgressDialog();}@Overridepublic void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {super.onReceivedError(view, request, error);LogUtils.e("onReceivedError");closeProgressDialog();}});WebSettings settings = webView.getSettings();// 允許執行JS腳本settings.setJavaScriptEnabled(true);// 縮放相關屬性設置settings.setUseWideViewPort(true);//設定支持viewportsettings.setLoadWithOverviewMode(true); //自適應屏幕settings.setBuiltInZoomControls(true);settings.setDisplayZoomControls(false);// 隱藏縮放控件settings.setSupportZoom(true);//設定支持縮放// 載入URLwebView.loadUrl("http://www.csdn.net/app/");// 然后,找到下載的地方,這個時候點擊下載,調用自己寫的下載程序//WebView默認沒有開啟文件下載的功能,// 如果要實現文件下載的功能,需要設置WebView的DownloadListenerwebView.setDownloadListener(new DownloadListener() {@Overridepublic void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {// 自己實現的下載邏輯線程new Thread(new DownLoadThread(url)).start();}});}/*** 載入前加載*/ProgressDialog mDialog;private void showProgressDialog() {mDialog = new ProgressDialog(this);mDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);//設置風格為圓形進度條mDialog.setMessage("正在加載 ,請等待...");mDialog.setIndeterminate(false);//設置進度條是否為不明確mDialog.setCancelable(true);//設置進度條是否可以按退回鍵取消 默認truemDialog.setCanceledOnTouchOutside(false);//設置在點擊Dialog外是否取消Dialog進度條 默認truemDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {@Overridepublic void onDismiss(DialogInterface dialog) {mDialog = null;}});mDialog.show();}private void closeProgressDialog() {mDialog.dismiss();mDialog = null;} }

清單文件配置權限

<uses-permission android:name="android.permission.INTERNET"/> <!-- 在SDCard中創建與刪除文件權限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 往SDCard寫入數據權限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

WebView緩存問題

現在很多門戶類信息網站,信息閱讀類的APP,很多 都是直接嵌套一個WebView用來顯示相關資訊的,這可能就涉及到了WebView的緩存了!

所謂的頁面緩存 就是指:保存加載一個網頁時所需的HTML,JS,CSS等頁面相關的數據以及其他資源,當沒網的時候或者 網絡狀態較差的時候,加載本地保存好的相關數據!而實現這個緩存的方式有兩種,一種是后臺寫一個 下載的Service,將文章相關的數據按自己的需求下載到數據庫或者保存到相應文件夾中,然后下次加載 對應URL前先判斷是否存在本地緩存,如果存在優先加載本地緩存,不存在則執行聯網請求,同時緩存 相關資源,典型的如舊版本的36Kr,在進去后會先離線文章,然后再顯示!
當然,這里要講解的不是 這種自己寫邏輯的方式,而是通過WebView本身自帶的緩存功能來緩存頁面,這種方式使用起來非常 簡單,我們只需為WebView設置開啟相關功能,以及設置數據庫的緩存路徑即可完成緩存!具體的 實現我們下面一一道來~


緩存的分類

首先要說的一點是緩存的分類,我們緩存的數據分為:頁面緩存和數據緩存

  • 頁面緩存:加載一個網頁時的html、JS、CSS等頁面或者資源數據,這些緩存資源是由于瀏覽器 的行為而產生,開發者只能通過配置HTTP響應頭影響瀏覽器的行為才能間接地影響到這些緩存數據。
    而緩存的索引放在:/data/data/<包名>/databases
    對應的文件放在:/data/data/package_name/cache/webviewCacheChromunm下
  • 數據緩存:分為AppCache和DOM Storage兩種 我們開發者可以自行控制的就是這些緩存資源,
  • AppCache:我們能夠有選擇的緩沖web瀏覽器中所有的東西,從頁面、圖片到腳本、css等等。 尤其在涉及到應用于網站的多個頁面上的CSS和JavaScript文件的時候非常有用。其大小目前通常是5M。 在Android上需要手動開啟(setAppCacheEnabled),并設置路徑(setAppCachePath)和容量 (setAppCacheMaxSize),而Android中使用ApplicationCache.db來保存AppCache數據!

  • DOM Storage:存儲一些簡單的用key/value對即可解決的數據,根據作用范圍的不同,有Session Storage和Local Storage兩種,分別用于會話級別的存儲(頁面關閉即消失)和本地化存儲(除非主動 刪除,否則數據永遠不會過期)在Android中可以手動開啟DOM Storage(setDomStorageEnabled), 設置存儲路徑(setDatabasePath)Android中Webkit會為DOMStorage產生兩個文件(my_path/localstorage/http_blog.csdn.net_0.localstorage和my_path/Databases.db)

另外還要說下幾種緩存的模式:

  • LOAD_CACHE_ONLY: 不使用網絡,只讀取本地緩存數據
  • LOAD_DEFAULT: 根據cache-control決定是否從網絡上取數據。
  • LOAD_CACHE_NORMAL: API level 17中已經廢棄, 從API level 11開始作用同LOAD_DEFAULT模式
  • LOAD_NO_CACHE: 不使用緩存,只從網絡獲取數據.
  • LOAD_CACHE_ELSE_NETWORK,只要本地有,無論是否過期,或者no-cache,都使用緩存中的數據。

總結:根據以上兩種模式,建議緩存策略為,判斷是否有網絡,有的話,使用LOAD_DEFAULT, 無網絡時,使用LOAD_CACHE_ELSE_NETWORK。

http://www.runoob.com/w3cnote/android-tutorial-webview-cache.html


為WebView開啟緩存功能

流程解析: 1.進入頁面后默認加載url,然后隨便點擊一個鏈接跳到第二個頁面,退出APP 2.關閉wifi以及移動網絡,然后重新進入,發現無網絡的情況下,頁面還是加載了, 打開第一個鏈接也可以加載,打開其他鏈接就發現找不到網頁! 3.點擊清除緩存,把應用關閉,重新進入,發現頁面已經打不開!

package com.turing.base.activity.webview.WebView_Cache;import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button;import com.apkfuns.logutils.LogUtils; import com.turing.base.R;/*** 開啟緩存的功能,以及設置緩存模式以及緩存的數據的路徑*/ public class WebViewCacheAct extends AppCompatActivity {private WebView wView;private Button btn_clear_cache;private Button btn_refresh;private static final String APP_CACHE_DIRNAME = "/webcache"; // web緩存目錄private static final String URL = "http://blog.csdn.net/yangshangwei";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_web_view_cache);wView = (WebView) findViewById(R.id.wView);btn_clear_cache = (Button) findViewById(R.id.btn_clear_cache);btn_refresh = (Button) findViewById(R.id.btn_refresh);wView.loadUrl(URL);wView.setWebViewClient(new WebViewClient() {//設置在webView點擊打開的新網頁在當前界面顯示,而不跳轉到新的瀏覽器中@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}});WebSettings settings = wView.getSettings();settings.setJavaScriptEnabled(true);//設置緩存模式settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);// 開啟DOM storage API 功能settings.setDomStorageEnabled(true);// 開啟database storage API功能settings.setDatabaseEnabled(true);String cacheDirPath = getFilesDir().getAbsolutePath() + APP_CACHE_DIRNAME;LogUtils.e("cachePath:"+ cacheDirPath);// 設置數據庫緩存路徑settings.setAppCachePath(cacheDirPath);settings.setAppCacheEnabled(true);LogUtils.e("databasepath:"+ settings.getDatabasePath());// 清除緩存btn_clear_cache.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {wView.clearCache(true);}});// 刷新btn_refresh.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {wView.reload();}});}//重寫回退按鈕的點擊事件@Overridepublic void onBackPressed() {if(wView.canGoBack()){wView.goBack();}else{super.onBackPressed();}} }

刪除WebView的緩存數據

上面的示例,我們通過調用WebView的clearCache(true)方法,已經實現了對緩存的刪除! 除了這種方法外,還有下述方法:

  • setting.setCacheMode(WebSettings.LOAD_NO_CACHE);
  • deleteDatabase(“WebView.db”);和deleteDatabase(“WebViewCache.db”);
  • webView.clearHistory();
  • webView.clearFormData();
  • getCacheDir().delete();
  • 手動寫delete方法,循環迭代刪除緩存文件夾!

當然,前面也說,我們能這直接操作的只是數據部分,而頁面緩存是由于瀏覽器 的行為而產生,我們只能通過配置HTTP響應頭影響瀏覽器的行為才能間接地影響到 這些緩存數據。所以上述的方法僅僅是刪除的數據部分的緩存!


WebView處理網頁返回的錯誤碼信息

假如你們公司是做HTML5端的移動APP的,就是通過WebView來顯示網頁的,假如你訪問的網頁 不存在,或者其他錯誤,報404,401,403,30X等錯誤的狀態碼,如果直接彈出WebView默認的錯誤 提示頁面,可能顯得不那么友好,我們可以重寫WebViewClient的onReceivedError()方法來實現我們 想要的效果,一般的做法有兩種,一種是:我們自己在assets目錄下創建一個用于顯示錯誤信息的 HTML頁面,當發生錯誤,即onReceivedError()被調用的時候我們調用webView的loadUrl跳到我們 的錯誤頁面,比如:wView.loadUrl(“file:///android_asset/error.html”);!又或者我們另外寫 一個布局或者直接一個大大的圖片,平時設置為不可見,當頁面錯誤時,讓該布局或者圖片可見!


頁面錯誤,加載自定義網頁

wView.setWebViewClient(new WebViewClient() { //設置在webView點擊打開的新網頁在當前界面顯示,而不跳轉到新的瀏覽器中 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true; }@Override public void onReceivedError(WebView view, int errorCode, String description,String failingUrl) {super.onReceivedError(view, errorCode, description, failingUrl);wView.loadUrl("file:///android_asset/error.html");} });

頁面錯誤,顯示相應的View

public class MainActivity extends AppCompatActivity implements View.OnClickListener{private WebView wView;private ImageView img_error_back;private Button btn_refresh;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);wView = (WebView) findViewById(R.id.wView);img_error_back = (ImageView) findViewById(R.id.img_error_back);btn_refresh = (Button) findViewById(R.id.btn_refresh);wView.loadUrl("http://www.baidu.com");wView.setWebViewClient(new WebViewClient() {//設置在webView點擊打開的新網頁在當前界面顯示,而不跳轉到新的瀏覽器中@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {view.loadUrl(url);return true;}@Overridepublic void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {super.onReceivedError(view, errorCode, description, failingUrl);wView.setVisibility(View.GONE);img_error_back.setVisibility(View.VISIBLE);}});btn_refresh.setOnClickListener(this);}@Overridepublic void onClick(View v) {wView.loadUrl("http://www.baidu.com");img_error_back.setVisibility(View.GONE);wView.setVisibility(View.VISIBLE);} }

除此之外:
Android 調用js有個漏洞:詳情請查看原作者博文:
http://blog.csdn.net/leehong2005/article/details/11808557

還有簡書上的一片博文,可以參考下
http://www.jianshu.com/p/3fcf8ba18d7f

再此僅作為記錄。

總結

以上是生活随笔為你收集整理的WebView完全解读的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

色情久久久av熟女人妻网站 | 18禁止看的免费污网站 | 人妻少妇精品视频专区 | 野外少妇愉情中文字幕 | 婷婷丁香五月天综合东京热 | 午夜精品一区二区三区的区别 | 色综合天天综合狠狠爱 | 熟妇人妻无乱码中文字幕 | 午夜精品一区二区三区的区别 | 国产在线aaa片一区二区99 | 99精品无人区乱码1区2区3区 | 人人妻人人澡人人爽欧美一区九九 | 亚洲色欲色欲欲www在线 | 精品久久久久香蕉网 | 麻豆国产人妻欲求不满 | 欧美黑人乱大交 | 玩弄人妻少妇500系列视频 | 好爽又高潮了毛片免费下载 | 国产av剧情md精品麻豆 | 国产成人综合色在线观看网站 | 妺妺窝人体色www婷婷 | 亚洲国产欧美国产综合一区 | 中文字幕日韩精品一区二区三区 | 欧美三级不卡在线观看 | 麻花豆传媒剧国产免费mv在线 | 午夜精品久久久久久久 | 亚洲国产欧美在线成人 | 未满小14洗澡无码视频网站 | 国产真人无遮挡作爱免费视频 | 久久精品99久久香蕉国产色戒 | 国产亚洲精品久久久久久久 | 高潮毛片无遮挡高清免费视频 | 999久久久国产精品消防器材 | 中文字幕亚洲情99在线 | 亲嘴扒胸摸屁股激烈网站 | 亚洲国产欧美日韩精品一区二区三区 | 亚洲日韩精品欧美一区二区 | 国产av一区二区三区最新精品 | 一本加勒比波多野结衣 | 国产精品美女久久久网av | 亚洲第一无码av无码专区 | 99久久婷婷国产综合精品青草免费 | 日韩在线不卡免费视频一区 | 亚洲乱码国产乱码精品精 | 亚洲欧洲无卡二区视頻 | 99久久精品午夜一区二区 | 天天燥日日燥 | 国产精品第一国产精品 | 欧美xxxxx精品 | 特大黑人娇小亚洲女 | 成人欧美一区二区三区 | 日本va欧美va欧美va精品 | 精品夜夜澡人妻无码av蜜桃 | 色婷婷综合激情综在线播放 | 午夜熟女插插xx免费视频 | 全黄性性激高免费视频 | 国产精品久久久久久无码 | 国产卡一卡二卡三 | 国产成人综合在线女婷五月99播放 | 亚洲热妇无码av在线播放 | 水蜜桃色314在线观看 | 无码人妻久久一区二区三区不卡 | 亚洲精品一区二区三区四区五区 | 国产内射爽爽大片视频社区在线 | 欧美亚洲日韩国产人成在线播放 | 蜜桃无码一区二区三区 | 久久成人a毛片免费观看网站 | 人妻少妇精品无码专区动漫 | 国产精品久久久久久无码 | 国产香蕉97碰碰久久人人 | 狠狠色色综合网站 | 学生妹亚洲一区二区 | 国产后入清纯学生妹 | 亚洲国产精品无码一区二区三区 | 一本久道高清无码视频 | 欧美 亚洲 国产 另类 | 亚洲一区二区三区国产精华液 | 丰满人妻精品国产99aⅴ | 狂野欧美性猛交免费视频 | 青青草原综合久久大伊人精品 | 一区二区传媒有限公司 | 高中生自慰www网站 | 亚洲日韩av一区二区三区中文 | 精品无码av一区二区三区 | 蜜桃av抽搐高潮一区二区 | 成人影院yy111111在线观看 | 麻豆国产97在线 | 欧洲 | 亚洲色大成网站www国产 | 性欧美熟妇videofreesex | 色五月五月丁香亚洲综合网 | 亚洲中文字幕在线无码一区二区 | 亚洲国产成人a精品不卡在线 | 欧美老妇与禽交 | 国产亲子乱弄免费视频 | av在线亚洲欧洲日产一区二区 | 暴力强奷在线播放无码 | 中文久久乱码一区二区 | 国内精品久久久久久中文字幕 | 精品欧洲av无码一区二区三区 | 性欧美熟妇videofreesex | 成人亚洲精品久久久久软件 | 欧美怡红院免费全部视频 | 国产成人无码a区在线观看视频app | 久久精品国产99久久6动漫 | 精品久久久中文字幕人妻 | 精品人妻中文字幕有码在线 | 狠狠综合久久久久综合网 | 中文无码伦av中文字幕 | 最新版天堂资源中文官网 | 最新国产麻豆aⅴ精品无码 | 男人和女人高潮免费网站 | 久久久久久国产精品无码下载 | 中文字幕乱码中文乱码51精品 | 国产乱人伦偷精品视频 | 国产综合在线观看 | 久久天天躁夜夜躁狠狠 | 麻豆成人精品国产免费 | 免费网站看v片在线18禁无码 | 亚洲精品成人av在线 | 日日摸夜夜摸狠狠摸婷婷 | 久久久久国色av免费观看性色 | 亚洲国产精品一区二区美利坚 | 国产综合久久久久鬼色 | ass日本丰满熟妇pics | 久久久久久av无码免费看大片 | 性史性农村dvd毛片 | 免费人成网站视频在线观看 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 动漫av一区二区在线观看 | 国产真实夫妇视频 | 国产成人精品三级麻豆 | 国产精品自产拍在线观看 | 国产亚洲精品久久久久久久久动漫 | 亚洲中文字幕在线无码一区二区 | 欧美国产亚洲日韩在线二区 | 国内揄拍国内精品人妻 | 欧美丰满少妇xxxx性 | aⅴ在线视频男人的天堂 | 亚洲小说图区综合在线 | 欧美人与物videos另类 | 亚洲精品鲁一鲁一区二区三区 | 亚洲成av人综合在线观看 | 99久久亚洲精品无码毛片 | 国产欧美亚洲精品a | 国产亚洲精品久久久闺蜜 | 久久97精品久久久久久久不卡 | 久久久久成人精品免费播放动漫 | 中文字幕中文有码在线 | 国产av一区二区三区最新精品 | 成人动漫在线观看 | 国产美女精品一区二区三区 | 76少妇精品导航 | 亚洲七七久久桃花影院 | 欧美乱妇无乱码大黄a片 | 国产人妻人伦精品 | 最新国产麻豆aⅴ精品无码 | 国产亚洲精品久久久闺蜜 | 色综合久久久无码网中文 | 日韩欧美成人免费观看 | 97精品人妻一区二区三区香蕉 | 久久99精品久久久久久 | 午夜福利试看120秒体验区 | 国产成人精品久久亚洲高清不卡 | 熟妇激情内射com | 人人澡人人妻人人爽人人蜜桃 | 帮老师解开蕾丝奶罩吸乳网站 | 精品久久久中文字幕人妻 | 欧美老熟妇乱xxxxx | 亚洲 a v无 码免 费 成 人 a v | 国产小呦泬泬99精品 | 日韩av激情在线观看 | а天堂中文在线官网 | 成人欧美一区二区三区黑人 | 天天综合网天天综合色 | 色爱情人网站 | 啦啦啦www在线观看免费视频 | 久久亚洲国产成人精品性色 | 免费播放一区二区三区 | 精品人妻av区 | 天堂一区人妻无码 | 国产97人人超碰caoprom | 玩弄中年熟妇正在播放 | 久久久久免费看成人影片 | 无遮无挡爽爽免费视频 | 大肉大捧一进一出好爽视频 | 久久综合狠狠综合久久综合88 | 亚洲а∨天堂久久精品2021 | 三级4级全黄60分钟 | 一本大道久久东京热无码av | 露脸叫床粗话东北少妇 | 99riav国产精品视频 | 99久久久无码国产aaa精品 | aⅴ在线视频男人的天堂 | 亚洲成色www久久网站 | 樱花草在线社区www | 亚洲日韩乱码中文无码蜜桃臀网站 | 98国产精品综合一区二区三区 | 娇妻被黑人粗大高潮白浆 | 2019nv天堂香蕉在线观看 | 白嫩日本少妇做爰 | 粗大的内捧猛烈进出视频 | 蜜桃视频插满18在线观看 | 色综合久久中文娱乐网 | 亚洲欧美日韩国产精品一区二区 | 亚欧洲精品在线视频免费观看 | 精品无码av一区二区三区 | 中文字幕无码av波多野吉衣 | 俄罗斯老熟妇色xxxx | 国产办公室秘书无码精品99 | 国产无遮挡又黄又爽又色 | 色一情一乱一伦 | 日韩欧美中文字幕公布 | 久久精品国产大片免费观看 | 精品一区二区三区波多野结衣 | 亚洲精品一区二区三区大桥未久 | 狠狠综合久久久久综合网 | 欧美zoozzooz性欧美 | 亚洲高清偷拍一区二区三区 | 亚洲 日韩 欧美 成人 在线观看 | 国产97人人超碰caoprom | 人妻无码αv中文字幕久久琪琪布 | 国产人妻精品一区二区三区 | 人妻少妇精品无码专区动漫 | 久久精品99久久香蕉国产色戒 | 国产亚洲欧美在线专区 | 丰满岳乱妇在线观看中字无码 | 内射后入在线观看一区 | 综合人妻久久一区二区精品 | 六月丁香婷婷色狠狠久久 | 丝袜 中出 制服 人妻 美腿 | 性生交大片免费看l | 捆绑白丝粉色jk震动捧喷白浆 | 国产av一区二区精品久久凹凸 | 久激情内射婷内射蜜桃人妖 | 国产精品无码成人午夜电影 | 网友自拍区视频精品 | 亚洲精品国产品国语在线观看 | 久久伊人色av天堂九九小黄鸭 | 中文字幕人成乱码熟女app | 亚洲精品一区二区三区四区五区 | 熟女俱乐部五十路六十路av | 国产精品久久久一区二区三区 | 欧美激情内射喷水高潮 | av无码久久久久不卡免费网站 | 99久久精品午夜一区二区 | 亚洲の无码国产の无码步美 | 日本又色又爽又黄的a片18禁 | 亚洲精品国产品国语在线观看 | a在线观看免费网站大全 | 国产高清不卡无码视频 | 影音先锋中文字幕无码 | 奇米影视7777久久精品 | 色一情一乱一伦一区二区三欧美 | 大地资源网第二页免费观看 | 日韩在线不卡免费视频一区 | 人妻与老人中文字幕 | 大肉大捧一进一出好爽视频 | 国产精品人人爽人人做我的可爱 | 欧美成人免费全部网站 | 爽爽影院免费观看 | 日本熟妇人妻xxxxx人hd | 天下第一社区视频www日本 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 亚洲精品国偷拍自产在线观看蜜桃 | 伊在人天堂亚洲香蕉精品区 | 一本久道久久综合狠狠爱 | 人妻夜夜爽天天爽三区 | 亚洲日本va中文字幕 | 国产精品久久精品三级 | 一个人看的www免费视频在线观看 | 内射白嫩少妇超碰 | 欧美人与禽猛交狂配 | 国产三级精品三级男人的天堂 | 午夜精品一区二区三区在线观看 | 激情综合激情五月俺也去 | 亚洲小说春色综合另类 | 亚洲人成影院在线无码按摩店 | 日本精品高清一区二区 | 欧美性猛交xxxx富婆 | 亚洲精品久久久久avwww潮水 | 亚洲欧美色中文字幕在线 | 国产av剧情md精品麻豆 | 日韩无码专区 | 日韩av无码中文无码电影 | 亚洲成熟女人毛毛耸耸多 | 一个人看的www免费视频在线观看 | 亚洲啪av永久无码精品放毛片 | 小泽玛莉亚一区二区视频在线 | 成人试看120秒体验区 | 国产精品a成v人在线播放 | 少妇邻居内射在线 | 高潮毛片无遮挡高清免费 | 国产99久久精品一区二区 | 黑人玩弄人妻中文在线 | 国产三级久久久精品麻豆三级 | 黑人巨大精品欧美黑寡妇 | 亚洲一区二区三区无码久久 | 国产免费无码一区二区视频 | 国产97在线 | 亚洲 | 国产成人无码av片在线观看不卡 | 欧美黑人巨大xxxxx | www国产亚洲精品久久久日本 | 中文字幕无码免费久久9一区9 | 午夜福利一区二区三区在线观看 | 欧美日韩亚洲国产精品 | 麻豆国产人妻欲求不满谁演的 | 亚洲精品一区国产 | 亚洲熟妇自偷自拍另类 | 日韩精品a片一区二区三区妖精 | 全黄性性激高免费视频 | 国产精品毛多多水多 | 免费无码av一区二区 | 中文字幕无码免费久久9一区9 | 狠狠噜狠狠狠狠丁香五月 | 国产精品久久精品三级 | 亚洲熟悉妇女xxx妇女av | 国产97人人超碰caoprom | 帮老师解开蕾丝奶罩吸乳网站 | 一本无码人妻在中文字幕免费 | 日本欧美一区二区三区乱码 | 日韩在线不卡免费视频一区 | 永久免费精品精品永久-夜色 | 亚洲精品国偷拍自产在线观看蜜桃 | 99久久亚洲精品无码毛片 | 中文字幕日韩精品一区二区三区 | 国产午夜精品一区二区三区嫩草 | 天天躁夜夜躁狠狠是什么心态 | 蜜桃av抽搐高潮一区二区 | 伊人久久大香线蕉av一区二区 | 色综合天天综合狠狠爱 | 狠狠噜狠狠狠狠丁香五月 | 久久精品中文字幕一区 | 亚无码乱人伦一区二区 | 日本又色又爽又黄的a片18禁 | 国产极品视觉盛宴 | 国色天香社区在线视频 | 亚洲欧洲日本综合aⅴ在线 | 欧美日韩在线亚洲综合国产人 | 国产香蕉97碰碰久久人人 | www一区二区www免费 | 捆绑白丝粉色jk震动捧喷白浆 | 人人妻人人藻人人爽欧美一区 | 强开小婷嫩苞又嫩又紧视频 | 国产精品丝袜黑色高跟鞋 | 中文字幕人成乱码熟女app | 人人妻人人澡人人爽人人精品浪潮 | 国产艳妇av在线观看果冻传媒 | 乱码午夜-极国产极内射 | 国产三级精品三级男人的天堂 | 无码av中文字幕免费放 | 日韩亚洲欧美精品综合 | 九月婷婷人人澡人人添人人爽 | 亚洲男人av香蕉爽爽爽爽 | 亚洲熟悉妇女xxx妇女av | 中文字幕无码av波多野吉衣 | 无码人妻丰满熟妇区毛片18 | 欧美人与善在线com | 亚洲爆乳精品无码一区二区三区 | 成人免费无码大片a毛片 | 久久伊人色av天堂九九小黄鸭 | 丰满少妇女裸体bbw | 国产69精品久久久久app下载 | 偷窥日本少妇撒尿chinese | 狂野欧美性猛交免费视频 | 中文字幕人妻无码一夲道 | 欧美丰满熟妇xxxx性ppx人交 | 老熟妇乱子伦牲交视频 | 亚洲精品一区二区三区在线观看 | 国产两女互慰高潮视频在线观看 | 性欧美videos高清精品 | 成人欧美一区二区三区 | 亚欧洲精品在线视频免费观看 | www成人国产高清内射 | 欧美性色19p | 夜夜躁日日躁狠狠久久av | 狠狠色欧美亚洲狠狠色www | 国产亚洲精品久久久ai换 | 婷婷五月综合激情中文字幕 | 日本免费一区二区三区最新 | 中文久久乱码一区二区 | 国语精品一区二区三区 | 一本久久伊人热热精品中文字幕 | 久久久国产精品无码免费专区 | 国产精品-区区久久久狼 | 4hu四虎永久在线观看 | 国产特级毛片aaaaaa高潮流水 | 欧美色就是色 | 欧美成人家庭影院 | 亚洲欧美精品伊人久久 | 欧美国产日韩久久mv | 国产在线aaa片一区二区99 | 性史性农村dvd毛片 | 国产激情综合五月久久 | 人妻无码αv中文字幕久久琪琪布 | 国产在线无码精品电影网 | 一个人看的www免费视频在线观看 | 久久亚洲a片com人成 | 国产在线精品一区二区高清不卡 | 亚洲 高清 成人 动漫 | 久久综合香蕉国产蜜臀av | 综合网日日天干夜夜久久 | 亚洲国产成人a精品不卡在线 | 最近免费中文字幕中文高清百度 | 男人的天堂av网站 | 樱花草在线社区www | 精品久久综合1区2区3区激情 | 女人被爽到呻吟gif动态图视看 | 国内精品人妻无码久久久影院 | 国产成人综合色在线观看网站 | 日韩人妻系列无码专区 | 久久午夜夜伦鲁鲁片无码免费 | 一本精品99久久精品77 | 丰满人妻一区二区三区免费视频 | 亚洲人成影院在线无码按摩店 | 国产 浪潮av性色四虎 | 亚洲成av人综合在线观看 | 亚洲啪av永久无码精品放毛片 | 婷婷丁香五月天综合东京热 | 四虎国产精品免费久久 | 日日摸夜夜摸狠狠摸婷婷 | 牲交欧美兽交欧美 | 日韩人妻无码一区二区三区久久99 | 国内精品人妻无码久久久影院蜜桃 | 亚洲欧美色中文字幕在线 | 中文字幕人妻无码一夲道 | 亚洲欧美国产精品专区久久 | 亚洲欧美综合区丁香五月小说 | 亚洲精品久久久久avwww潮水 | 亚洲一区二区三区偷拍女厕 | 婷婷丁香六月激情综合啪 | 2019nv天堂香蕉在线观看 | 国产精品久久久久久亚洲影视内衣 | 国产乱码精品一品二品 | 亚洲色成人中文字幕网站 | 国语精品一区二区三区 | 日韩无码专区 | 小泽玛莉亚一区二区视频在线 | 国产欧美亚洲精品a | 欧美国产日韩久久mv | 国产精品va在线播放 | 日日摸日日碰夜夜爽av | 欧洲精品码一区二区三区免费看 | 无码人妻出轨黑人中文字幕 | 中文字幕无码日韩欧毛 | 综合人妻久久一区二区精品 | 77777熟女视频在线观看 а天堂中文在线官网 | 东京热无码av男人的天堂 | 蜜臀av无码人妻精品 | 免费国产成人高清在线观看网站 | 国产成人精品视频ⅴa片软件竹菊 | 国产午夜无码精品免费看 | 久久国产精品_国产精品 | 欧美丰满老熟妇xxxxx性 | 免费观看又污又黄的网站 | 久久久精品成人免费观看 | 国产美女精品一区二区三区 | 精品偷拍一区二区三区在线看 | 久久精品国产日本波多野结衣 | 亚洲日本一区二区三区在线 | 国产精品99久久精品爆乳 | 成熟女人特级毛片www免费 | 亚洲综合精品香蕉久久网 | 久久久久久久人妻无码中文字幕爆 | 日本熟妇浓毛 | 精品一二三区久久aaa片 | 色综合久久88色综合天天 | 六月丁香婷婷色狠狠久久 | 国产精品无码一区二区桃花视频 | 色综合天天综合狠狠爱 | 久久久久成人精品免费播放动漫 | 欧美人与善在线com | 2019午夜福利不卡片在线 | 成人亚洲精品久久久久软件 | 无码人妻丰满熟妇区毛片18 | 色欲久久久天天天综合网精品 | 国产精品嫩草久久久久 | 丰满人妻翻云覆雨呻吟视频 | 永久免费精品精品永久-夜色 | av香港经典三级级 在线 | 蜜桃视频韩日免费播放 | 六十路熟妇乱子伦 | 丰满少妇高潮惨叫视频 | 亚洲综合另类小说色区 | 午夜无码人妻av大片色欲 | 久久国产自偷自偷免费一区调 | 又黄又爽又色的视频 | 久久婷婷五月综合色国产香蕉 | 成熟人妻av无码专区 | 国产精品久久久久久亚洲影视内衣 | 亚洲va欧美va天堂v国产综合 | 亚洲色在线无码国产精品不卡 | 亚洲日韩av一区二区三区中文 | 国色天香社区在线视频 | 亚洲精品中文字幕 | 中文字幕日产无线码一区 | 天天做天天爱天天爽综合网 | 欧美黑人乱大交 | 影音先锋中文字幕无码 | 亚洲国产综合无码一区 | 波多野结衣一区二区三区av免费 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲人成影院在线观看 | 成人影院yy111111在线观看 | 精品无码一区二区三区爱欲 | 俄罗斯老熟妇色xxxx | 日日摸天天摸爽爽狠狠97 | 无码人妻精品一区二区三区下载 | 98国产精品综合一区二区三区 | 丰满岳乱妇在线观看中字无码 | 中文字幕av无码一区二区三区电影 | 女高中生第一次破苞av | 色偷偷人人澡人人爽人人模 | 夜精品a片一区二区三区无码白浆 | 国产成人无码a区在线观看视频app | aⅴ亚洲 日韩 色 图网站 播放 | 伊人色综合久久天天小片 | 77777熟女视频在线观看 а天堂中文在线官网 | 中文字幕乱妇无码av在线 | 在线a亚洲视频播放在线观看 | 国产精品.xx视频.xxtv | 欧美成人高清在线播放 | 日韩av无码一区二区三区不卡 | 亚洲日本一区二区三区在线 | 国产特级毛片aaaaaaa高清 | 欧洲熟妇色 欧美 | 少妇邻居内射在线 | 亚洲の无码国产の无码影院 | 日韩精品无码一区二区中文字幕 | 女人和拘做爰正片视频 | 亚洲日韩av一区二区三区四区 | 精品午夜福利在线观看 | 国内揄拍国内精品少妇国语 | 波多野结衣av在线观看 | 久久精品国产日本波多野结衣 | 无码人妻黑人中文字幕 | 亚洲天堂2017无码 | 亚洲精品www久久久 | 亚洲成a人一区二区三区 | 一本大道伊人av久久综合 | 久久久婷婷五月亚洲97号色 | 国产高清不卡无码视频 | 一区二区三区乱码在线 | 欧洲 | 国产真人无遮挡作爱免费视频 | 人妻少妇精品无码专区动漫 | 999久久久国产精品消防器材 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 久久久中文久久久无码 | 欧美喷潮久久久xxxxx | 日韩人妻无码中文字幕视频 | 高潮喷水的毛片 | 夜夜影院未满十八勿进 | 日产精品高潮呻吟av久久 | 国内精品人妻无码久久久影院蜜桃 | 捆绑白丝粉色jk震动捧喷白浆 | 色综合久久久无码中文字幕 | 一本精品99久久精品77 | 免费无码av一区二区 | 天堂无码人妻精品一区二区三区 | 国产精品对白交换视频 | www国产亚洲精品久久久日本 | 国产国语老龄妇女a片 | 东京热无码av男人的天堂 | 麻豆国产丝袜白领秘书在线观看 | 荫蒂添的好舒服视频囗交 | 少妇高潮喷潮久久久影院 | 亚洲一区av无码专区在线观看 | 亚洲日韩av一区二区三区四区 | 夜夜躁日日躁狠狠久久av | 久久久婷婷五月亚洲97号色 | 中文字幕日产无线码一区 | 国产精品无码久久av | 亚洲人成人无码网www国产 | 午夜福利试看120秒体验区 | 亚洲成av人片在线观看无码不卡 | 国产午夜无码精品免费看 | 97精品人妻一区二区三区香蕉 | 在线精品国产一区二区三区 | 在线a亚洲视频播放在线观看 | 国产熟妇高潮叫床视频播放 | 国产超碰人人爽人人做人人添 | 娇妻被黑人粗大高潮白浆 | 999久久久国产精品消防器材 | 97人妻精品一区二区三区 | 中文字幕无码免费久久99 | 熟女少妇人妻中文字幕 | 国产人成高清在线视频99最全资源 | 亚洲国产精品无码久久久久高潮 | 久久www免费人成人片 | 亚洲一区二区三区在线观看网站 | 亚洲精品国产第一综合99久久 | 久久精品国产99久久6动漫 | 伊人久久婷婷五月综合97色 | 又黄又爽又色的视频 | 97人妻精品一区二区三区 | 国产精品无码mv在线观看 | 亚洲欧美日韩综合久久久 | 又大又硬又黄的免费视频 | 捆绑白丝粉色jk震动捧喷白浆 | 色婷婷av一区二区三区之红樱桃 | 黑森林福利视频导航 | 正在播放东北夫妻内射 | 国产凸凹视频一区二区 | 日日天日日夜日日摸 | 亚洲综合另类小说色区 | 97资源共享在线视频 | 欧美高清在线精品一区 | 亚洲一区二区三区 | 中文字幕日韩精品一区二区三区 | 四虎永久在线精品免费网址 | 九九久久精品国产免费看小说 | 狂野欧美性猛xxxx乱大交 | 日韩视频 中文字幕 视频一区 | 国产真人无遮挡作爱免费视频 | 丰满少妇弄高潮了www | 最近中文2019字幕第二页 | 亚洲精品午夜无码电影网 | 久久成人a毛片免费观看网站 | 精品久久久久久亚洲精品 | 欧美国产日韩亚洲中文 | 国产在线无码精品电影网 | 激情五月综合色婷婷一区二区 | 成年美女黄网站色大免费视频 | 好男人社区资源 | www国产亚洲精品久久久日本 | 日产国产精品亚洲系列 | 十八禁视频网站在线观看 | 波多野结衣av一区二区全免费观看 | 无码人妻精品一区二区三区不卡 | 日韩人妻无码一区二区三区久久99 | www成人国产高清内射 | 久久99国产综合精品 | 亚洲日韩一区二区 | 日本一区二区三区免费播放 | 人人妻人人澡人人爽精品欧美 | 青青青手机频在线观看 | 三上悠亚人妻中文字幕在线 | 正在播放东北夫妻内射 | 中文字幕 人妻熟女 | 精品国产一区二区三区四区在线看 | 国产精品18久久久久久麻辣 | 白嫩日本少妇做爰 | 人妻人人添人妻人人爱 | 色欲人妻aaaaaaa无码 | 男女猛烈xx00免费视频试看 | 高潮喷水的毛片 | 三上悠亚人妻中文字幕在线 | 日本精品人妻无码77777 天堂一区人妻无码 | 中文亚洲成a人片在线观看 | 色欲人妻aaaaaaa无码 | 天下第一社区视频www日本 | 无码人妻久久一区二区三区不卡 | 亚洲va欧美va天堂v国产综合 | 在线 国产 欧美 亚洲 天堂 | 丰满护士巨好爽好大乳 | 色一情一乱一伦 | 无码成人精品区在线观看 | 久久久久人妻一区精品色欧美 | 18禁黄网站男男禁片免费观看 | 少妇高潮喷潮久久久影院 | 少妇无码一区二区二三区 | 精品无码一区二区三区爱欲 | 国产亚av手机在线观看 | 亚洲s色大片在线观看 | 美女张开腿让人桶 | 97资源共享在线视频 | 性色欲网站人妻丰满中文久久不卡 | 国产欧美精品一区二区三区 | 色综合视频一区二区三区 | 亚洲熟熟妇xxxx | 国产亚洲精品久久久闺蜜 | 澳门永久av免费网站 | 88国产精品欧美一区二区三区 | 色情久久久av熟女人妻网站 | 精品国产青草久久久久福利 | 亚洲国产成人a精品不卡在线 | 丰满护士巨好爽好大乳 | 中文字幕无码av激情不卡 | 亚洲a无码综合a国产av中文 | 国产高潮视频在线观看 | 最新国产乱人伦偷精品免费网站 | 亚洲精品国产a久久久久久 | 高清不卡一区二区三区 | 无码帝国www无码专区色综合 | 亚洲中文字幕无码中文字在线 | 青青久在线视频免费观看 | 亚洲gv猛男gv无码男同 | 亚洲最大成人网站 | 乱人伦中文视频在线观看 | 蜜桃臀无码内射一区二区三区 | 欧美日韩色另类综合 | 波多野结衣高清一区二区三区 | 国产欧美熟妇另类久久久 | 久久伊人色av天堂九九小黄鸭 | 国产午夜无码精品免费看 | 亚洲中文字幕成人无码 | 午夜福利一区二区三区在线观看 | 国产精品久久久久9999小说 | 亚洲国产一区二区三区在线观看 | 欧美丰满少妇xxxx性 | 一本久久a久久精品vr综合 | 日日噜噜噜噜夜夜爽亚洲精品 | 午夜福利一区二区三区在线观看 | 中文字幕av无码一区二区三区电影 | 亚洲中文字幕在线无码一区二区 | 未满小14洗澡无码视频网站 | 亚洲啪av永久无码精品放毛片 | 国产激情综合五月久久 | 国产艳妇av在线观看果冻传媒 | 国产美女精品一区二区三区 | aa片在线观看视频在线播放 | 亚洲综合无码一区二区三区 | 日日碰狠狠躁久久躁蜜桃 | 国产在线一区二区三区四区五区 | 97色伦图片97综合影院 | 激情国产av做激情国产爱 | 嫩b人妻精品一区二区三区 | 中文字幕乱码人妻无码久久 | 欧美丰满熟妇xxxx性ppx人交 | 国产午夜视频在线观看 | 日韩人妻无码一区二区三区久久99 | 国产美女极度色诱视频www | 天堂亚洲2017在线观看 | 俄罗斯老熟妇色xxxx | 午夜福利不卡在线视频 | 亚洲小说图区综合在线 | 色综合久久88色综合天天 | 色欲av亚洲一区无码少妇 | 亚洲成av人片天堂网无码】 | 国产精品毛片一区二区 | 大屁股大乳丰满人妻 | 黑人粗大猛烈进出高潮视频 | 成人无码精品1区2区3区免费看 | 伊人久久婷婷五月综合97色 | 国产乱人无码伦av在线a | 国产超碰人人爽人人做人人添 | 国产精品-区区久久久狼 | 俺去俺来也在线www色官网 | 亚洲乱码中文字幕在线 | 国产黄在线观看免费观看不卡 | 青青青爽视频在线观看 | 国产午夜亚洲精品不卡下载 | 人妻与老人中文字幕 | 色偷偷人人澡人人爽人人模 | 亚洲精品中文字幕久久久久 | 国产成人无码一二三区视频 | 亚洲人成网站色7799 | 亚洲爆乳无码专区 | 色五月五月丁香亚洲综合网 | 狂野欧美激情性xxxx | 天堂无码人妻精品一区二区三区 | 国产一区二区三区精品视频 | 中文字幕无码免费久久99 | 黑人巨大精品欧美一区二区 | 99久久99久久免费精品蜜桃 | 亚洲色大成网站www国产 | 欧美阿v高清资源不卡在线播放 | 18禁止看的免费污网站 | 久9re热视频这里只有精品 | 欧美国产亚洲日韩在线二区 | 成人精品一区二区三区中文字幕 | 午夜精品久久久久久久久 | 国产精品美女久久久久av爽李琼 | 波多野结衣av一区二区全免费观看 | 成人性做爰aaa片免费看不忠 | 欧美日韩视频无码一区二区三 | 麻豆国产丝袜白领秘书在线观看 | 国产人成高清在线视频99最全资源 | 久久99精品久久久久婷婷 | 天天摸天天碰天天添 | 综合激情五月综合激情五月激情1 | 精品无人区无码乱码毛片国产 | 中文字幕+乱码+中文字幕一区 | 清纯唯美经典一区二区 | 高潮毛片无遮挡高清免费 | 欧美熟妇另类久久久久久不卡 | 四虎影视成人永久免费观看视频 | 在线a亚洲视频播放在线观看 | 国产人成高清在线视频99最全资源 | 宝宝好涨水快流出来免费视频 | 东京热无码av男人的天堂 | 国产精品二区一区二区aⅴ污介绍 | 丰满岳乱妇在线观看中字无码 | 日本又色又爽又黄的a片18禁 | 久久精品国产一区二区三区肥胖 | 少妇无码一区二区二三区 | 妺妺窝人体色www在线小说 | 精品日本一区二区三区在线观看 | 国产av人人夜夜澡人人爽麻豆 | 亚洲国产精品久久人人爱 | 自拍偷自拍亚洲精品被多人伦好爽 | 成人免费视频在线观看 | 日本一卡二卡不卡视频查询 | 牲交欧美兽交欧美 | 免费无码午夜福利片69 | 日本一区二区三区免费播放 | 野狼第一精品社区 | 在线观看国产午夜福利片 | 亚洲精品一区国产 | 内射老妇bbwx0c0ck | 综合激情五月综合激情五月激情1 | 久久99国产综合精品 | 乱码av麻豆丝袜熟女系列 | 成人免费无码大片a毛片 | 国产午夜精品一区二区三区嫩草 | 乱人伦中文视频在线观看 | 玩弄中年熟妇正在播放 | 国产激情一区二区三区 | 丁香花在线影院观看在线播放 | 成在人线av无码免观看麻豆 | 亚洲精品国产精品乱码视色 | 国产无套内射久久久国产 | 少妇的肉体aa片免费 | 国产精品无码成人午夜电影 | 一二三四在线观看免费视频 | 国产精品igao视频网 | 精品一二三区久久aaa片 | 一个人看的www免费视频在线观看 | 无码播放一区二区三区 | 18黄暴禁片在线观看 | 无码午夜成人1000部免费视频 | 一个人免费观看的www视频 | 国产精品理论片在线观看 | 无遮无挡爽爽免费视频 | 国产亚洲日韩欧美另类第八页 | 亚洲日韩精品欧美一区二区 | 国产一区二区三区四区五区加勒比 | 日韩亚洲欧美中文高清在线 | 日本又色又爽又黄的a片18禁 | √8天堂资源地址中文在线 | 久久午夜夜伦鲁鲁片无码免费 | 久久精品国产大片免费观看 | aⅴ亚洲 日韩 色 图网站 播放 | 国产亚洲精品久久久闺蜜 | 精品国产一区二区三区av 性色 | 国产av无码专区亚洲a∨毛片 | 亚洲国产欧美日韩精品一区二区三区 | 精品一区二区三区波多野结衣 | 麻豆国产97在线 | 欧洲 | 伊人色综合久久天天小片 | 久久精品丝袜高跟鞋 | 亚洲熟妇自偷自拍另类 | 国产偷国产偷精品高清尤物 | 久久久久亚洲精品中文字幕 | 国产熟女一区二区三区四区五区 | а√天堂www在线天堂小说 | 精品无码av一区二区三区 | 老头边吃奶边弄进去呻吟 | 亚洲aⅴ无码成人网站国产app | 日本护士xxxxhd少妇 | 撕开奶罩揉吮奶头视频 | 99国产欧美久久久精品 | 99国产精品白浆在线观看免费 | 在线成人www免费观看视频 | 性欧美大战久久久久久久 | 国语自产偷拍精品视频偷 | 少妇无码av无码专区在线观看 | 国产又爽又黄又刺激的视频 | 在线观看国产午夜福利片 | 免费国产成人高清在线观看网站 | 亚洲毛片av日韩av无码 | 嫩b人妻精品一区二区三区 | 国产无遮挡又黄又爽又色 | 亚洲人成无码网www | 日韩精品无码免费一区二区三区 | 国内精品一区二区三区不卡 | 免费国产黄网站在线观看 | 中文毛片无遮挡高清免费 | 成 人 免费观看网站 | 国产精品.xx视频.xxtv | 蜜桃臀无码内射一区二区三区 | 日韩精品无码一本二本三本色 | 夜夜影院未满十八勿进 | 国精产品一区二区三区 | 欧美性猛交xxxx富婆 | www成人国产高清内射 | 樱花草在线社区www | 国产精品办公室沙发 | 成人免费视频在线观看 | 在线播放无码字幕亚洲 | 国产精品第一国产精品 | 亚洲自偷自拍另类第1页 | 亚洲精品久久久久中文第一幕 | 精品国产一区二区三区四区在线看 | 人人妻人人澡人人爽欧美精品 | 亚洲精品中文字幕久久久久 | 99久久精品日本一区二区免费 | 丰满人妻精品国产99aⅴ | 男女爱爱好爽视频免费看 | 性色欲网站人妻丰满中文久久不卡 | 亚洲精品综合五月久久小说 | 少妇高潮一区二区三区99 | 国产成人无码av一区二区 | 亚洲国产高清在线观看视频 | 欧美xxxx黑人又粗又长 | 超碰97人人射妻 | 中文字幕av日韩精品一区二区 | 欧美 亚洲 国产 另类 | 久久国产精品_国产精品 | 亲嘴扒胸摸屁股激烈网站 | 国产区女主播在线观看 | 大色综合色综合网站 | 中文字幕日韩精品一区二区三区 | 国产精品a成v人在线播放 | 精品乱码久久久久久久 | 国产一区二区不卡老阿姨 | 又大又紧又粉嫩18p少妇 | 亚洲伊人久久精品影院 | 久久午夜无码鲁丝片午夜精品 | 亲嘴扒胸摸屁股激烈网站 | 综合人妻久久一区二区精品 | 麻豆国产人妻欲求不满 | 久久99久久99精品中文字幕 | 欧美日韩一区二区三区自拍 | 午夜精品久久久内射近拍高清 | 亚洲gv猛男gv无码男同 | 国产亚洲tv在线观看 | 久久人妻内射无码一区三区 | 亚洲一区二区三区国产精华液 | 国产绳艺sm调教室论坛 | 综合网日日天干夜夜久久 | 偷窥日本少妇撒尿chinese | 久激情内射婷内射蜜桃人妖 | 亚洲成av人片在线观看无码不卡 | 男人的天堂av网站 | 精品国产福利一区二区 | 无码国产乱人伦偷精品视频 | 日本熟妇人妻xxxxx人hd | 色婷婷av一区二区三区之红樱桃 | 一本色道久久综合亚洲精品不卡 | 夫妻免费无码v看片 | 国产特级毛片aaaaaaa高清 | 亚洲乱码中文字幕在线 | 亚洲综合在线一区二区三区 | 97人妻精品一区二区三区 | 精品国产一区二区三区av 性色 | 正在播放老肥熟妇露脸 | 午夜性刺激在线视频免费 | 任你躁在线精品免费 | 欧美老妇交乱视频在线观看 | 三级4级全黄60分钟 | 欧美丰满老熟妇xxxxx性 | 欧美老熟妇乱xxxxx | 黑人粗大猛烈进出高潮视频 | 日本www一道久久久免费榴莲 | 97久久超碰中文字幕 | 日韩精品无码一区二区中文字幕 | 中文字幕av伊人av无码av | 色综合久久久无码中文字幕 | 香港三级日本三级妇三级 | 精品欧洲av无码一区二区三区 | 婷婷丁香五月天综合东京热 | 久久精品中文字幕大胸 | 国产国语老龄妇女a片 | 日本爽爽爽爽爽爽在线观看免 | 无码精品国产va在线观看dvd | 日本成熟视频免费视频 | 精品一二三区久久aaa片 | 欧美国产日韩久久mv | 一本久久a久久精品vr综合 | 国产亚av手机在线观看 | 亚洲小说春色综合另类 | 亚洲精品国偷拍自产在线观看蜜桃 | 午夜时刻免费入口 | 自拍偷自拍亚洲精品被多人伦好爽 | 久久国产精品二国产精品 | 无码毛片视频一区二区本码 | 欧美性生交活xxxxxdddd | 亚洲成av人综合在线观看 | 亚洲 高清 成人 动漫 | 99久久人妻精品免费一区 | 青青青手机频在线观看 | 久久亚洲日韩精品一区二区三区 | 午夜精品久久久久久久 | 国产亚洲精品久久久闺蜜 | 亚洲成av人综合在线观看 | 亚洲 高清 成人 动漫 | a片免费视频在线观看 | 国产无遮挡又黄又爽免费视频 | 午夜福利一区二区三区在线观看 | 日日摸日日碰夜夜爽av | 国产乱人伦av在线无码 | 99精品无人区乱码1区2区3区 | av小次郎收藏 | 中文亚洲成a人片在线观看 | 人人妻人人澡人人爽欧美精品 | 夜夜高潮次次欢爽av女 | 午夜精品一区二区三区在线观看 | 人妻尝试又大又粗久久 | а√天堂www在线天堂小说 | 国产无套粉嫩白浆在线 | 久久综合九色综合欧美狠狠 | 日本大乳高潮视频在线观看 | 日韩亚洲欧美中文高清在线 | 丁香花在线影院观看在线播放 | 中文亚洲成a人片在线观看 | 精品欧美一区二区三区久久久 | 激情内射日本一区二区三区 | 国产国语老龄妇女a片 | 欧美 日韩 人妻 高清 中文 | 欧美人与动性行为视频 | 熟妇人妻激情偷爽文 | 377p欧洲日本亚洲大胆 | 好爽又高潮了毛片免费下载 | 亚洲精品成a人在线观看 | 中文字幕av无码一区二区三区电影 | 亚洲色偷偷偷综合网 | 性色av无码免费一区二区三区 | 精品国产精品久久一区免费式 | 在线欧美精品一区二区三区 | 日本免费一区二区三区最新 | 精品少妇爆乳无码av无码专区 | 久久97精品久久久久久久不卡 | 又大又黄又粗又爽的免费视频 | 日韩无码专区 | 国产色精品久久人妻 | 曰韩无码二三区中文字幕 | 日本xxxx色视频在线观看免费 | 强辱丰满人妻hd中文字幕 | a片免费视频在线观看 | 少妇太爽了在线观看 | 兔费看少妇性l交大片免费 | 中文字幕乱码亚洲无线三区 | 国内精品久久久久久中文字幕 | 全球成人中文在线 | 99riav国产精品视频 | 亚洲日韩av一区二区三区中文 | 性生交片免费无码看人 | 性开放的女人aaa片 | 国产免费久久久久久无码 | 在线精品国产一区二区三区 | 在线а√天堂中文官网 | 亚洲第一网站男人都懂 | 亚洲大尺度无码无码专区 | 中文字幕无码av激情不卡 | 国产色xx群视频射精 | 东京热一精品无码av | 国产午夜亚洲精品不卡下载 | 亚洲熟妇色xxxxx欧美老妇y | 久久午夜无码鲁丝片秋霞 | 国产亚洲精品精品国产亚洲综合 | 精品久久久久香蕉网 | 麻豆av传媒蜜桃天美传媒 | 性欧美牲交xxxxx视频 | 成人免费视频视频在线观看 免费 | 欧洲vodafone精品性 | 老熟女重囗味hdxx69 | 国产精华av午夜在线观看 | 亚洲日本在线电影 | 给我免费的视频在线观看 | 十八禁视频网站在线观看 | 国产无遮挡又黄又爽免费视频 | 国产午夜无码精品免费看 | √天堂中文官网8在线 | 国产真人无遮挡作爱免费视频 | 成人影院yy111111在线观看 | 精品久久久久久人妻无码中文字幕 | 正在播放东北夫妻内射 | 国产9 9在线 | 中文 | 亚洲色成人中文字幕网站 | 四十如虎的丰满熟妇啪啪 | 日韩精品成人一区二区三区 | 久久午夜夜伦鲁鲁片无码免费 | 国产成人精品三级麻豆 | 成人免费视频视频在线观看 免费 | 国产精品鲁鲁鲁 | 亚洲日韩av一区二区三区中文 | 亚洲精品久久久久久久久久久 | 欧美人与禽zoz0性伦交 | 日韩少妇内射免费播放 | 色综合视频一区二区三区 | 红桃av一区二区三区在线无码av | 国产精品鲁鲁鲁 | 99久久精品日本一区二区免费 | 国产无遮挡又黄又爽免费视频 | 激情内射亚州一区二区三区爱妻 | 伊人久久大香线蕉午夜 | 亚洲国产av美女网站 | 色综合视频一区二区三区 | 大地资源中文第3页 | 一二三四在线观看免费视频 | 久久久婷婷五月亚洲97号色 | 中文字幕亚洲情99在线 | 成人性做爰aaa片免费看不忠 | 国产无套内射久久久国产 | 中文字幕无码人妻少妇免费 | 精品乱码久久久久久久 | 亚洲国产精品成人久久蜜臀 | 国产特级毛片aaaaaa高潮流水 | 噜噜噜亚洲色成人网站 | 精品水蜜桃久久久久久久 | 日欧一片内射va在线影院 | 午夜熟女插插xx免费视频 | 熟妇激情内射com | 国产精品欧美成人 | 精品国偷自产在线 | 亚洲国产精品成人久久蜜臀 | 丰满少妇弄高潮了www | 亚洲国产精华液网站w | av无码不卡在线观看免费 | 欧美自拍另类欧美综合图片区 | 国产午夜无码视频在线观看 | 亚洲小说图区综合在线 | 国产成人精品无码播放 | ass日本丰满熟妇pics | 精品国偷自产在线视频 | 免费乱码人妻系列无码专区 | 欧美黑人巨大xxxxx | 妺妺窝人体色www在线小说 | 亚洲精品鲁一鲁一区二区三区 | 亚洲一区二区三区偷拍女厕 | 性做久久久久久久久 | 亚洲欧美精品伊人久久 | 久久精品国产日本波多野结衣 | 纯爱无遮挡h肉动漫在线播放 | 色爱情人网站 | 精品国精品国产自在久国产87 | 欧美性猛交内射兽交老熟妇 | 久久久久久国产精品无码下载 | 亚洲欧洲日本无在线码 | 国产一区二区三区影院 | 精品乱码久久久久久久 | 久久久无码中文字幕久... | 亚洲熟妇色xxxxx欧美老妇y | 久在线观看福利视频 | 岛国片人妻三上悠亚 | 精品熟女少妇av免费观看 | 国产在线精品一区二区高清不卡 | 人人妻人人澡人人爽人人精品 | 未满小14洗澡无码视频网站 | 搡女人真爽免费视频大全 | 天堂一区人妻无码 | 久久人人爽人人人人片 | 国产亚洲精品久久久久久大师 | 久久综合狠狠综合久久综合88 | 露脸叫床粗话东北少妇 | 国产精品久久国产精品99 | 在线播放亚洲第一字幕 | 亚洲国产av美女网站 | 一区二区传媒有限公司 | 久久精品丝袜高跟鞋 | 国产精品久久久久久亚洲影视内衣 | 成 人 网 站国产免费观看 | 樱花草在线社区www | 欧美阿v高清资源不卡在线播放 | √天堂资源地址中文在线 | 精品亚洲成av人在线观看 | 男人扒开女人内裤强吻桶进去 | 日韩无套无码精品 | 中文字幕+乱码+中文字幕一区 | 亚洲精品一区二区三区婷婷月 | 性欧美videos高清精品 | 亚洲aⅴ无码成人网站国产app | 国产精品无码永久免费888 | 亚洲精品综合五月久久小说 | 国产性生大片免费观看性 | 无码国产激情在线观看 | 一本久道久久综合狠狠爱 | 在线精品国产一区二区三区 | 成人欧美一区二区三区 | 欧美亚洲日韩国产人成在线播放 | 精品偷自拍另类在线观看 | 亚洲人交乣女bbw | 97精品国产97久久久久久免费 | 四虎永久在线精品免费网址 | 国产精品久久久久久亚洲毛片 | 鲁一鲁av2019在线 | 久久国产自偷自偷免费一区调 | 欧美zoozzooz性欧美 | 中文字幕久久久久人妻 | 亚洲精品中文字幕久久久久 | 熟妇激情内射com | 久久亚洲日韩精品一区二区三区 | 东京热无码av男人的天堂 | 国产电影无码午夜在线播放 | 亚洲人交乣女bbw | 奇米影视7777久久精品 | 日本一卡二卡不卡视频查询 | 国产又粗又硬又大爽黄老大爷视 | 成年女人永久免费看片 | 强奷人妻日本中文字幕 | 5858s亚洲色大成网站www | 国产97色在线 | 免 | 少妇人妻大乳在线视频 | 亚洲a无码综合a国产av中文 | 伦伦影院午夜理论片 | 国产av无码专区亚洲awww | 亚洲乱码中文字幕在线 | 国产做国产爱免费视频 | 人妻尝试又大又粗久久 | 无码播放一区二区三区 | 天堂久久天堂av色综合 | 永久免费观看国产裸体美女 | 亚洲欧美日韩国产精品一区二区 | 美女毛片一区二区三区四区 | 奇米影视7777久久精品 | 久久精品99久久香蕉国产色戒 | 扒开双腿疯狂进出爽爽爽视频 | 国产精品人人妻人人爽 | 高潮喷水的毛片 | 无码av免费一区二区三区试看 | 小鲜肉自慰网站xnxx | 国产九九九九九九九a片 | 国产无套内射久久久国产 | 午夜精品久久久久久久久 | 丰满少妇女裸体bbw | 欧美熟妇另类久久久久久多毛 | 国内少妇偷人精品视频免费 | 1000部夫妻午夜免费 | 成熟妇人a片免费看网站 | 亚洲啪av永久无码精品放毛片 | 色 综合 欧美 亚洲 国产 | 精品一区二区三区波多野结衣 | 亚洲成色www久久网站 | 精品国产aⅴ无码一区二区 | 未满小14洗澡无码视频网站 | 国产精品久久久久7777 | 99国产精品白浆在线观看免费 | 三级4级全黄60分钟 | 日日干夜夜干 | 少妇人妻大乳在线视频 | 欧美刺激性大交 | 亚洲天堂2017无码中文 | 激情爆乳一区二区三区 | 国産精品久久久久久久 | 国产电影无码午夜在线播放 | 少妇无码一区二区二三区 | 亚洲高清偷拍一区二区三区 | 国产成人精品一区二区在线小狼 | 亚洲综合色区中文字幕 | 狠狠色噜噜狠狠狠7777奇米 | 无遮挡国产高潮视频免费观看 | 色婷婷久久一区二区三区麻豆 | 青青青爽视频在线观看 | 色欲久久久天天天综合网精品 | 一二三四社区在线中文视频 | 亚洲一区二区三区偷拍女厕 | 欧美精品国产综合久久 | 在线精品国产一区二区三区 | 久久久久免费看成人影片 | 夜夜影院未满十八勿进 | 国产网红无码精品视频 | 国产真实伦对白全集 | 无码人妻黑人中文字幕 | 国产偷抇久久精品a片69 | 在线精品亚洲一区二区 | 国产精品美女久久久 | 久久久成人毛片无码 | 内射老妇bbwx0c0ck | 国产成人无码区免费内射一片色欲 | 中文字幕乱妇无码av在线 | 玩弄人妻少妇500系列视频 | 久久精品国产亚洲精品 | 377p欧洲日本亚洲大胆 | 国产在线一区二区三区四区五区 | 国产区女主播在线观看 | 丰满人妻一区二区三区免费视频 | 99er热精品视频 | 精品久久久中文字幕人妻 | 日韩精品无码一区二区中文字幕 | 国产亚av手机在线观看 | 亚洲男人av天堂午夜在 | 日本一本二本三区免费 | 免费国产黄网站在线观看 | 99国产欧美久久久精品 | 久久视频在线观看精品 | 亚洲日本在线电影 | 国内精品人妻无码久久久影院蜜桃 | 国产舌乚八伦偷品w中 | 网友自拍区视频精品 | 午夜精品久久久内射近拍高清 | 精品一区二区三区无码免费视频 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 日本护士xxxxhd少妇 | 又大又黄又粗又爽的免费视频 | 日本乱人伦片中文三区 | 性色欲网站人妻丰满中文久久不卡 | 97人妻精品一区二区三区 | 欧美日韩在线亚洲综合国产人 | 伊人久久婷婷五月综合97色 | 久久久久久九九精品久 | 激情综合激情五月俺也去 | 亚洲熟妇自偷自拍另类 | 久久99精品国产麻豆蜜芽 | 国产亚洲精品久久久久久 | 激情内射亚州一区二区三区爱妻 | 狂野欧美性猛xxxx乱大交 | 精品午夜福利在线观看 | 牲欲强的熟妇农村老妇女视频 | 日韩av无码一区二区三区不卡 | 无码人妻丰满熟妇区毛片18 | 又黄又爽又色的视频 | 野狼第一精品社区 | 国产suv精品一区二区五 | 日本丰满护士爆乳xxxx | 99国产精品白浆在线观看免费 | 精品国产aⅴ无码一区二区 | 四十如虎的丰满熟妇啪啪 | 内射后入在线观看一区 | 亚洲另类伦春色综合小说 | 激情内射日本一区二区三区 | 国产后入清纯学生妹 | а√天堂www在线天堂小说 | 亚洲一区二区三区香蕉 | 2019nv天堂香蕉在线观看 | 无码人妻少妇伦在线电影 | 2019午夜福利不卡片在线 | 亚洲一区二区三区偷拍女厕 | 欧美激情内射喷水高潮 | 欧美日韩一区二区综合 | 图片小说视频一区二区 | 未满成年国产在线观看 | 窝窝午夜理论片影院 | 亚无码乱人伦一区二区 | 高潮毛片无遮挡高清免费 | 久久五月精品中文字幕 | 无码av免费一区二区三区试看 | 性色av无码免费一区二区三区 | 国产97在线 | 亚洲 | 欧美人与物videos另类 | 日本一本二本三区免费 | 亚洲精品中文字幕 | 久久久婷婷五月亚洲97号色 | 熟妇人妻激情偷爽文 | 一个人看的www免费视频在线观看 | 国产精品久久久久久无码 | 亚洲va欧美va天堂v国产综合 | 粉嫩少妇内射浓精videos | 亚洲狠狠婷婷综合久久 | 一本久道久久综合狠狠爱 | 精品国产乱码久久久久乱码 | 欧美精品免费观看二区 | 欧美黑人巨大xxxxx | 亚洲精品欧美二区三区中文字幕 | 亚洲中文字幕久久无码 | 九月婷婷人人澡人人添人人爽 | 欧美乱妇无乱码大黄a片 | 美女极度色诱视频国产 | 欧美 亚洲 国产 另类 | 日本熟妇浓毛 | 麻豆国产人妻欲求不满 | 日日干夜夜干 | 麻豆md0077饥渴少妇 | 亚洲日韩中文字幕在线播放 | 国产精华av午夜在线观看 | 天堂а√在线中文在线 | 国产亚洲精品久久久久久久久动漫 | 兔费看少妇性l交大片免费 | 成人毛片一区二区 | 丰满妇女强制高潮18xxxx | 天堂а√在线地址中文在线 | 国产特级毛片aaaaaaa高清 | 2019nv天堂香蕉在线观看 | 岛国片人妻三上悠亚 | 成人无码影片精品久久久 | aⅴ亚洲 日韩 色 图网站 播放 | 正在播放东北夫妻内射 | 亚洲国产av美女网站 | 亚洲精品国产a久久久久久 | 超碰97人人射妻 | 亚洲欧美国产精品久久 | 国内精品久久毛片一区二区 | 午夜性刺激在线视频免费 | 九一九色国产 | 波多野42部无码喷潮在线 | 国产成人精品无码播放 | 性欧美牲交在线视频 | 国产亚洲欧美在线专区 | 搡女人真爽免费视频大全 | 88国产精品欧美一区二区三区 | 精品国产aⅴ无码一区二区 | 蜜桃视频韩日免费播放 | 九一九色国产 | 人人妻人人澡人人爽欧美一区九九 | 成人aaa片一区国产精品 | 丰满人妻精品国产99aⅴ | 亚洲一区二区三区播放 | 精品国精品国产自在久国产87 | 国产明星裸体无码xxxx视频 | 红桃av一区二区三区在线无码av | 国产精品怡红院永久免费 | 精品国产福利一区二区 | 精品无码一区二区三区的天堂 | 免费人成网站视频在线观看 | 成人综合网亚洲伊人 | 天天拍夜夜添久久精品大 | 成人欧美一区二区三区黑人免费 | 亚洲人成无码网www | 欧美精品国产综合久久 | 人妻少妇被猛烈进入中文字幕 | 日产国产精品亚洲系列 | 国产九九九九九九九a片 | 天堂无码人妻精品一区二区三区 | 国产明星裸体无码xxxx视频 | 亚洲一区二区三区在线观看网站 | 日本丰满护士爆乳xxxx | 国产成人精品视频ⅴa片软件竹菊 | 亚洲国产精品一区二区第一页 | 人妻少妇精品久久 | 中文字幕+乱码+中文字幕一区 | 亚洲精品鲁一鲁一区二区三区 | 风流少妇按摩来高潮 | 无码av最新清无码专区吞精 | 丰满妇女强制高潮18xxxx | 国产午夜福利亚洲第一 | 国产成人无码av在线影院 | 亚洲精品中文字幕乱码 | 纯爱无遮挡h肉动漫在线播放 | 内射后入在线观看一区 | 亚洲精品国产精品乱码不卡 | 亚洲欧洲无卡二区视頻 | 人妻中文无码久热丝袜 | 无码人中文字幕 | 日本一卡二卡不卡视频查询 | 亚洲日韩一区二区三区 | 又大又硬又黄的免费视频 | 亚洲成熟女人毛毛耸耸多 | 久久国产精品二国产精品 | 日韩在线不卡免费视频一区 | 久久久无码中文字幕久... | 精品国产乱码久久久久乱码 | 日日噜噜噜噜夜夜爽亚洲精品 | 乱人伦中文视频在线观看 | 精品人妻中文字幕有码在线 | 无遮无挡爽爽免费视频 | 免费无码av一区二区 | 高清不卡一区二区三区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 玩弄中年熟妇正在播放 | 性欧美牲交在线视频 | 久久国产自偷自偷免费一区调 | 蜜桃臀无码内射一区二区三区 | 丰腴饱满的极品熟妇 | 亚洲欧美综合区丁香五月小说 | 国产精品久久精品三级 | 国产精品久久久久7777 | 欧美三级a做爰在线观看 | 精品亚洲韩国一区二区三区 | 亚洲色大成网站www国产 | 少妇性俱乐部纵欲狂欢电影 | 欧美一区二区三区视频在线观看 | 少妇激情av一区二区 | 亚洲欧美中文字幕5发布 | 成在人线av无码免费 | 亚洲成av人片在线观看无码不卡 | 麻豆果冻传媒2021精品传媒一区下载 | 少妇性l交大片欧洲热妇乱xxx | 亚洲精品国产精品乱码不卡 | 精品亚洲成av人在线观看 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 精品国产成人一区二区三区 | 欧洲极品少妇 | 国产午夜福利亚洲第一 | 青草视频在线播放 | 又粗又大又硬毛片免费看 | 国产又粗又硬又大爽黄老大爷视 | 真人与拘做受免费视频 | 久久成人a毛片免费观看网站 | 亚洲人成影院在线无码按摩店 | 激情人妻另类人妻伦 | 99国产欧美久久久精品 | 亚洲精品午夜无码电影网 | 高清无码午夜福利视频 | 熟女体下毛毛黑森林 | 亚洲欧美中文字幕5发布 | 国产熟女一区二区三区四区五区 | 午夜丰满少妇性开放视频 | 国产三级久久久精品麻豆三级 | 无码精品国产va在线观看dvd | 久久久久国色av免费观看性色 | 7777奇米四色成人眼影 | 骚片av蜜桃精品一区 | 51国偷自产一区二区三区 | 波多野结衣一区二区三区av免费 | 伊人久久大香线蕉午夜 | 中文字幕日产无线码一区 | 内射后入在线观看一区 | 99久久精品国产一区二区蜜芽 | 西西人体www44rt大胆高清 | 国产偷国产偷精品高清尤物 | 久久精品国产亚洲精品 | 十八禁视频网站在线观看 | 亚洲色www成人永久网址 | 人人妻人人澡人人爽欧美一区 | 国产乡下妇女做爰 | 国产乱人偷精品人妻a片 | 成 人 网 站国产免费观看 | 日本成熟视频免费视频 | 人妻夜夜爽天天爽三区 | 一本久久a久久精品亚洲 | 国产午夜无码视频在线观看 | 女人被爽到呻吟gif动态图视看 | 日韩精品久久久肉伦网站 | 夜夜高潮次次欢爽av女 | 无码吃奶揉捏奶头高潮视频 | 精品人妻人人做人人爽夜夜爽 | 久久久久se色偷偷亚洲精品av | 婷婷综合久久中文字幕蜜桃三电影 | 久久久久免费看成人影片 | 丰满妇女强制高潮18xxxx | 狠狠色噜噜狠狠狠狠7777米奇 | 国产av剧情md精品麻豆 | 日本www一道久久久免费榴莲 | 亚洲国产欧美国产综合一区 | 午夜丰满少妇性开放视频 | 女人被男人躁得好爽免费视频 | 大胆欧美熟妇xx | 日韩欧美成人免费观看 | 欧美老人巨大xxxx做受 | 中文字幕乱码亚洲无线三区 | 国产精品久久久久久亚洲影视内衣 | 人妻人人添人妻人人爱 | 男人的天堂av网站 | 久久久精品国产sm最大网站 | 国产农村妇女高潮大叫 | 乌克兰少妇性做爰 | 国产免费久久精品国产传媒 | 思思久久99热只有频精品66 | 久久久久成人片免费观看蜜芽 | 18禁止看的免费污网站 | 久久国产精品精品国产色婷婷 | 夜夜影院未满十八勿进 | 国产人妻精品午夜福利免费 | 我要看www免费看插插视频 | 免费人成在线观看网站 | 无套内谢的新婚少妇国语播放 | 久久综合色之久久综合 | 色欲综合久久中文字幕网 | 国产成人无码a区在线观看视频app | 18精品久久久无码午夜福利 | 99精品国产综合久久久久五月天 | 国产精品高潮呻吟av久久 | 亚洲欧美中文字幕5发布 | 99精品国产综合久久久久五月天 | 色婷婷香蕉在线一区二区 | 成人一在线视频日韩国产 | 国产午夜手机精彩视频 | 国产免费久久精品国产传媒 | 久久国产精品萌白酱免费 | 亚洲日韩乱码中文无码蜜桃臀网站 | 欧美老人巨大xxxx做受 | 日日噜噜噜噜夜夜爽亚洲精品 | 国产成人无码av在线影院 | 久久熟妇人妻午夜寂寞影院 | 草草网站影院白丝内射 | 精品aⅴ一区二区三区 | 久久人人97超碰a片精品 | 三上悠亚人妻中文字幕在线 | 免费播放一区二区三区 | 国产色xx群视频射精 | 亚洲欧洲中文日韩av乱码 | 曰本女人与公拘交酡免费视频 | av无码电影一区二区三区 | 亚洲色成人中文字幕网站 | 欧美人与禽猛交狂配 | 性生交片免费无码看人 | 日本精品久久久久中文字幕 | 国产黄在线观看免费观看不卡 | 骚片av蜜桃精品一区 | 国产熟女一区二区三区四区五区 | 色噜噜亚洲男人的天堂 | 亚洲乱码日产精品bd | 性史性农村dvd毛片 | 人人妻人人澡人人爽人人精品 | 99久久精品无码一区二区毛片 | 国产麻豆精品一区二区三区v视界 | 亚洲欧洲无卡二区视頻 | 九九综合va免费看 | 97se亚洲精品一区 | 性啪啪chinese东北女人 | 亚洲一区二区三区香蕉 | 小sao货水好多真紧h无码视频 | 亚洲午夜福利在线观看 | 欧美精品无码一区二区三区 | 又大又黄又粗又爽的免费视频 | 麻豆国产人妻欲求不满谁演的 | 中国女人内谢69xxxx | 中文字幕久久久久人妻 | 人妻无码久久精品人妻 | 国产成人精品一区二区在线小狼 | 国产情侣作爱视频免费观看 | 国产人妻大战黑人第1集 | 综合人妻久久一区二区精品 | 久激情内射婷内射蜜桃人妖 | 曰韩少妇内射免费播放 | 99久久精品无码一区二区毛片 | 又色又爽又黄的美女裸体网站 | 疯狂三人交性欧美 | 午夜精品一区二区三区在线观看 | 亚洲综合色区中文字幕 | 久久亚洲中文字幕精品一区 | 狠狠cao日日穞夜夜穞av | 亚洲精品成a人在线观看 | 黑人巨大精品欧美一区二区 | 3d动漫精品啪啪一区二区中 | 四虎永久在线精品免费网址 | 男人扒开女人内裤强吻桶进去 | 日韩av无码中文无码电影 | 国产精品理论片在线观看 | 欧美老妇交乱视频在线观看 | 波多野结衣aⅴ在线 | 亚洲国产高清在线观看视频 | 中文字幕人妻无码一夲道 | 亚洲第一无码av无码专区 | 国产精品久久国产三级国 | 国产亚洲人成a在线v网站 | 亚洲精品成a人在线观看 | 免费无码午夜福利片69 | 欧美刺激性大交 | 欧美亚洲日韩国产人成在线播放 | 强开小婷嫩苞又嫩又紧视频 | 狂野欧美性猛交免费视频 | 欧美放荡的少妇 | 狂野欧美性猛xxxx乱大交 | 国产香蕉97碰碰久久人人 | 又大又硬又黄的免费视频 | 欧美性生交xxxxx久久久 | 无码人妻丰满熟妇区毛片18 | 一本大道伊人av久久综合 | 亚洲一区二区三区在线观看网站 | 亚洲国产精品一区二区美利坚 | 久久综合激激的五月天 | 4hu四虎永久在线观看 | 亚洲精品美女久久久久久久 | 国产亚洲人成在线播放 | 日本xxxx色视频在线观看免费 | 欧洲熟妇色 欧美 | 无套内谢的新婚少妇国语播放 | 99精品国产综合久久久久五月天 | 天堂亚洲2017在线观看 | 精品亚洲成av人在线观看 | 亚洲欧美国产精品专区久久 | 国产美女极度色诱视频www | 亚洲成av人在线观看网址 | 精品亚洲韩国一区二区三区 | 377p欧洲日本亚洲大胆 | 色五月丁香五月综合五月 | 国产一区二区不卡老阿姨 | 无码国产色欲xxxxx视频 | 在线观看欧美一区二区三区 | 中文字幕乱码人妻二区三区 | 精品厕所偷拍各类美女tp嘘嘘 | 丰满少妇女裸体bbw | 久久zyz资源站无码中文动漫 | 99久久精品午夜一区二区 | 性欧美牲交在线视频 | 乌克兰少妇性做爰 | 东京一本一道一二三区 | 亚洲自偷自偷在线制服 | 国产又爽又猛又粗的视频a片 | 亚洲精品一区国产 | 国产尤物精品视频 | 性欧美videos高清精品 | 亚洲精品国偷拍自产在线麻豆 | 亚洲精品成人av在线 | 欧美人与禽zoz0性伦交 | 久久久久久久久蜜桃 | 日韩少妇白浆无码系列 | 俄罗斯老熟妇色xxxx | 天堂无码人妻精品一区二区三区 | 无码人中文字幕 | 一个人免费观看的www视频 | 亚洲成a人片在线观看日本 | 99在线 | 亚洲 | 曰韩少妇内射免费播放 | 麻豆md0077饥渴少妇 | 日本一区二区三区免费高清 | 亚洲色欲色欲欲www在线 | 中文字幕乱码人妻无码久久 | 国产欧美熟妇另类久久久 | 国产精华av午夜在线观看 | 九九热爱视频精品 | 精品人妻av区 | 国产成人午夜福利在线播放 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 精品国产一区二区三区av 性色 | 久久精品成人欧美大片 |