精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

移動端最常用&最重要組件之一:WebView(HarmonyOS版)使用指南

系統 OpenHarmony
本期Codelab我們將用一個Demo來詳細介紹WebView組件的使用,包括UI界面的創建、WebView組件創建、Web頁面加載方式、APP應用與Web頁面間的交互與通信四個方面內容。

[[400182]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

現在很多APP里都內置了Web頁面(比如社交APP、新聞瀏覽類APP),即從APP中跳轉到網絡Web頁面或本地Web頁面,這種方法便于擴展APP應用體驗和更新維護內置Web頁面。在HarmonyOS中,開發者可以通過WebView組件實現上述功能。

WebView組件可用于加載網頁內容、獲取頁面詳細信息和控制頁面跳轉,并實現APP應用與內置Web頁面間的交互和通信。

本期Codelab我們將用一個Demo來詳細介紹WebView組件的使用,包括UI界面的創建、WebView組件創建、Web頁面加載方式、APP應用與Web頁面間的交互與通信四個方面內容。

在開始敲代碼之前,開發者們需要先下載安裝Huawei DevEco Studio,可參照官網的指南進行操作:

·Huawei DevEco Studio安裝指南:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/software_install-0000001053582415

接下來我們來解析本次Demo的代碼結構,方便大家做一個初步的了解:

● MainAbilitySlice文件

“MainAbilitySlice”文件在slice文件夾中,主要用于實現Demo邏輯,包括獲取WebView對象,加載頁面和實現Web頁面間的通信及交互。

● DataAbility文件

“DataAbility”文件主要是通過DataAbility訪問WebView加載的本地文件。

● background_button.xml文件

“background_button.xml”文件在graphic文件夾中,主要用于實現Demo中按鈕的背景設置。

● ability_main.xml文件

“ability_main.xml”文件在layout文件夾中,主要實現WebView組件的創建,同時也進行諸如文本輸入框和按鈕等其他UI界面內容的創建。

● text.html文件

“text.html”文件在rawfile文件夾中,是新增本地Web頁面的HTML文件,用于模擬WebView需要加載的本地Web頁面。

● config.json文件

config.json文件是工程相關配置文件,這里主要用于添加WebView加載Web頁面所需的網絡權限申請和DataAbility的聲明。

了解完基本的代碼結構,我們正式進入WebView組件的使用。

UI頁面的創建

我們先來創建一個UI界面(如圖1 Demo的UI界面),該界面將包含:

◆ TextField組件,用于接收用戶輸入的網址信息,本Demo中默認網址為

https://www.huawei.com/cn/;

◆ WebView組件,本Demo的重點組件,我們將在“WebView組件創建”中詳細描述;

◆ Button組件,即按鈕組件,本次Demo主界面中涉及5個按鈕組件將實現以下功能:加載Web頁面(Load URL)、Web網頁向后預覽(Go Back)、向前瀏覽(GO Forward)、加載本地HTML頁面(Load Local HTML)和給本地網頁發信息(Send Message to Local HTML)。

WebView組件創建

WebView派生于通用組件Component,包含基本組件的所有功能,可以像普通組件一樣使用。也就是說,WebView組件同樣可以采用XML形式和代碼形式創建,本次Demo使用的是XML形式:

1. 在"ability_main.xml"文件中創建WebView,示例代碼如下:

  1. <ohos.agp.components.webengine.WebView  
  2.     ohos:id="$+id:webview"  
  3.     ohos:height="match_parent"  
  4.     ohos:width="match_parent">  
  5. </WebView> 

 2.在"slice/MainAbilitySlice.java"文件中通過如下方式獲取WebView對象,示例代碼如下:

  1. WebView webview = (WebView)  
  2. findComponentById(ResourceTable.Id_webview); 

 當然,開發者也可以使用代碼形式創建,詳情請參考官網:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-component-webview-0000001092715158

Web頁面加載

WebView如何加載網絡Web頁面和本地Web頁面呢?接下來我們將分別進行介紹。

1.WebView加載網絡Web頁面

加載網絡Web頁面需要申請網絡權限ohos.permission.INTERNET。

我們在config.json中添加如下代碼進行申請:

  1. module": {  
  2. ……  
  3.    "reqPermissions": [  
  4.     {  
  5.        "name""ohos.permission.INTERNET"  
  6.      }  
  7.   ]  

 完成網絡申請后,在"MainAbilitySlice.java"文件中通過webview.load(String url)方法訪問具體的網絡Web頁面,通過WebConfig類對WebView組件進行配置,示例代碼如下:

  1. WebConfig webConfig = webview.getWebConfig();  
  2. // WebView加載URL,其中urlTextField為輸入URL的TextField組件  
  3. webview.load(urlTextField.getText()); 

 在Web頁面進行鏈接跳轉時,WebView默認會打開目標網址,通過WebAgent對象可以捕獲該行為,這里僅使用isNeedLoadUrl根據當前WebView請求檢查是否加載請求,當URL以"http:"或"https:"開頭,則執行加載,示例代碼如下:

  1. webview.setWebAgent(new WebAgent() {  
  2.             @Override  
  3.             public boolean isNeedLoadUrl(WebView webView, ResourceRequest request) {  
  4.                 if (request == null || request.getRequestUrl() == null) {  
  5.                     LogUtil.info(TAG,"WebAgent isNeedLoadUrl:request is null.");  
  6.                     return false;  
  7.                 }  
  8.                 String url = request.getRequestUrl().toString();  
  9.                 if (url.startsWith("http:") || url.startsWith("https:")) {  
  10.                     webView.load(url);  
  11.                     return false;  
  12.                 } else {  
  13.                     return super.isNeedLoadUrl(webView, request);  
  14.                 }  
  15.             }  
  16.         }); 

 除此之外,WebAgent對象還提供了相關的回調函數以觀測頁面狀態的變更,如onLoadingPage、onPageLoaded、onError等方法,用于頁面“開始加載”、“停止加載”、“加載錯誤”時的調用,詳情可見官網WebAgent參考。

·官網:WebAgent參考

https://developer.harmonyos.com/cn/docs/documentation/doc-references/webagent-0000001078160526

同時,WebView提供Navigator類進行歷史記錄的瀏覽和處理,開發者可通過getNavigator()方法獲取該類的對象,使用canGoBack()或canGoForward()方法檢查是否可以向后或向前瀏覽,使用goBack()或goForward()方法實現向后或向前瀏覽,示例代碼如下:

  1. Navigator navigator = webView.getNavigator();  
  2. if (navigator.canGoBack()) {  
  3.     navigator.goBack();  
  4. }  
  5. if (navigator.canGoForward()) {  
  6.     navigator.goForward();  

 2.WebView加載本地Web頁面

出于安全考慮,WebView不支持直接通過File協議加載資源文件或本地文件。如開發者需實現相關業務,HarmonyOS提供兩種方式:通過processResourceRequest方法訪問文件和通過Data Ability訪問文件。

在本Demo中,我們將重點講述Data Ability訪問文件的形式,大家可以通過官網了解processResourceRequest方法的實現~

·官網:加載資源文件或本地文件

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-component-webview-0000001092715158

本次Demo中,我們將自行創建一個HTML文件,放在"resources/rawfile/"目錄下并將其命名為text.html。除了HTML文件常見的固定內容,我們還將在其中加入<button>標簽,用于生成按鈕“調用Java方法”和添加<script >插入一段JavaScript內容,示例代碼如下:

  1. <!DOCTYPE html>  
  2. <html>  
  3.     <meta charset="UTF-8">  
  4.     <title>本地html</title>  
  5.     <body onload="hello">  
  6.         <br>  
  7.         <h1 id="helloName">這是一個本地HTML頁面</h1>  
  8.         <br>  
  9.         <button id="button" onclick="sendData()" style="background-color:#70DBDB;height:30px;">調用Java方法</button>  
  10.   
  11.         <script type="text/javascript"
  12.         …….// 省略部分為應用調用Web頁面及/ Web頁面調用應用內容,我們將在后續講解 
  13. </script>  
  14.     </body>  
  15. </html> 

創建完本地Web頁面,我們來看看WebView如何通過DataAbility加載本地Web頁面。如果不了解DataAbility的具體使用方法,可以參考官網鏈接。

·官網:DataAbility

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-data-concept-0000000000043058

1)我們新建一個DataAbility。注意使用DataAbility之前需要先完成聲明,我們在"entry\src\main\config.json"中完成,示例代碼如下:

  1. module": {  
  2. ……  
  3.    "abilities": [  
  4.     {  
  5.       "name""com.huawei.codelab.DataAbility",  
  6.       "type""data",  
  7.       "uri""dataability://com.huawei.codelab.DataAbility"  
  8.     }  
  9.   ]  

 2)通過openRawFile(Uri uri, String mode)方法,完成WebView對本地Web頁面的訪問,示例代碼如下:

  1. public class DataAbility extends Ability {  
  2.     ...  
  3.     @Override  
  4.     public RawFileDescriptor openRawFile(Uri uri, String mode) throws FileNotFoundException {  
  5.         if (uri == null) {;  
  6.             return super.openRawFile(uri, mode);  
  7.         }  
  8.         String path = uri.getEncodedPath();  
  9.         int splitIndex = path.indexOf('/', 1);  
  10.         String providerName = Uri.decode(path.substring(1, splitIndex));  
  11.         String rawFilePath = Uri.decode(path.substring(splitIndex + 1));  
  12.         RawFileDescriptor rawFileDescriptor = null;  
  13.         try {  
  14.             rawFileDescriptor = getResourceManager().getRawFileEntry(rawFilePath).openRawFileDescriptor();  
  15.         } catch (IOException e) {  
  16.             // 異常處理  
  17.         }  
  18.         return rawFileDescriptor;  
  19.     }  

 3)在"slice/MainAbilitySlice.java"中聲明需要訪問的文件路徑,通過webview.load(String url)方法加載本地Web頁面,可以通過WebConfig類的對象對WebView訪問DataAbility的能力進行配置,示例代碼如下:

  1. private static final String URL_LOCAL = "dataability://com.huawei.codelab.DataAbility/resources/rawfile/test.html";  
  2. // 配置是否支持訪問DataAbility資源,默認為true  
  3. webConfig.setDataAbilityPermit(true);  
  4. webview.load(URL_LOCAL); 

 APP應用與Web頁面間的通信與交互

APP應用和內置Web頁面其實是相互獨立的,彼此之間是相互隔斷的,它們需要通過WebVeiw組件實現相互調用,來完成諸如獲取信息、接收彈窗、關閉彈窗等功能。

這個時候需要APP應用和Web頁面之間進行通信與交互,那具體是如何實現的,讓我們以本地Web頁面"text.html"為例來介紹一下。

首先我們需要對WebView組件中的WebConfig對象進行配置,使APP應用能與Web頁面中的JavaScript腳本交互,在MainAbilitySlice中實現,示例代碼如下:

  1. // 配置是否支持JavaScript,默認值為false  
  2. webConfig.setJavaScriptPermit(true); 

 1.APP應用調用本地Web頁面

我們先來介紹一下APP應用調用Web頁面的情況。在" text.html"文件中編寫callJS方法,待APP應用調用,示例代碼如下

  1. <script type="text/javascript">  
  2.     // 應用調用Web頁面  
  3.     function callJS(message) {  
  4.         alert(message);  
  5.     }  
  6. </script> 

在"slice/MainAbilitySlice.java"中實現APP應用對Web頁面JavaScript的調用,示例代碼如下:

  1. webview.executeJs("javascript:callJS('這是來自JavaSlice的消息')", msg -> {  
  2.         // 在這里處理Js方法的返回值  
  3.     }); 

 當我們點擊“Send Message to Local HTML”按鈕時呈現效果如圖2所示:

我們還可以通過setBrowserAgent方法設置自定義BrowserAgent對象,以觀測JavaScript事件及通知等,通過復寫onJsMessageShow方法來接管Web頁面彈出Alert對話框的事件,示例代碼如下:

  1. webview.setBrowserAgent(new BrowserAgent(this) {  
  2.             @Override  
  3.             public boolean onJsMessageShow(WebView webView, String url, String message, boolean isAlert, JsMessageResult result) {  
  4.                 LogUtil.info(TAG,"BrowserAgent onJsMessageShow : " + message);  
  5.                 if (isAlert) {  
  6.                     // 將Web頁面的alert對話框改為ToastDialog方式提示  
  7.                     new ToastDialog(getApplicationContext()).setText(message).setAlignment(LayoutAlignment.CENTER).show();  
  8.                     // 對彈框進行確認處理  
  9.                     result.confirm();  
  10.                     return true;  
  11.                 } else {  
  12.                     return super.onJsMessageShow(webView, url, message, isAlert, result);  
  13.                 }  
  14.             }  
  15.         }); 

2.本地Web頁面使用JavaScript調用App應用

在" text.html"中編寫按鈕,實現Web頁面JavaScript對App應用的調用,示例代碼如下:

  1. <body>  
  2.     ......  
  3. <button id="button" onclick="sendData()" style="background-color:#70DBDB;height:30px;">調用Java方法</button>  
  4. <script type="text/javascript">  
  5.   function sendData() {  
  6.     if (window.JsCallJava && window.JsCallJava.call) {  
  7.         // Web頁面調用應用  
  8.         var rst = window.JsCallJava.call("這個是來自本地Web頁面的消息");  
  9.     } else {  
  10.         alert('發送消息給WebviewSlice失敗');  
  11.     }  
  12.   }  
  13. </script>  
  14. </body> 

在"slice/MainAbilitySlice.java"中實現APP應用對JavaScript發起的調用的響應,示例代碼如下:

  1. private static final String JS_NAME = "JsCallJava";  
  2. webview.addJsCallback(JS_NAME, str -> {  
  3.   // 處理接收到的JavaScript發送來的消息,本教程通過ToastDialog提示確認收到Web頁面發來的消息  
  4.   new ToastDialog(this).setText(str).setAlignment(LayoutAlignment.CENTER).show();  
  5.   // 返回給JavaScript  
  6.   return "Js Call Java Success";  
  7. }); 

 當" text.html"頁面中的“調用Java方法”按鈕被點擊時,呈現效果如圖3:

至此,我們通過一個Demo學習了如何使用WebView組件創建UI界面、Web頁面加載方式、APP應用與Web頁面間的通信及交互。當然以上只是基礎操作,更多場景應用及創新需要開發者們的奇思妙想,期待你的腦洞大開~

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com 

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2012-12-26 12:41:14

Android開發WebView

2018-04-08 16:03:16

2010-08-04 15:37:31

Flex圖表

2010-08-04 14:28:01

Flex組件

2021-07-27 10:09:27

鴻蒙HarmonyOS應用

2022-09-29 09:07:08

DataGrip數據倉庫數據庫

2013-05-09 14:30:37

華為任正非企業網絡安全

2021-01-12 14:37:09

開發科學寫作

2016-11-28 09:24:08

Python內存技巧

2010-09-06 14:24:28

ppp authent

2011-07-21 14:57:34

jQuery Mobi

2009-12-28 17:40:10

WPF TextBox

2021-08-09 14:32:13

戴爾

2013-08-28 15:12:13

應用圖標應用商店優化蘋果AppStore

2025-07-02 09:00:24

ES運維JSON

2009-12-31 17:17:45

Silverlight

2021-01-12 15:19:23

Kubernetes

2022-11-03 08:00:00

Xpath動態元素定位器

2010-06-03 17:27:36

Hadoop命令

2010-08-05 15:40:21

FlexBuilder
點贊
收藏

51CTO技術棧公眾號

欧美经典一区| 黄色在线免费看| 香蕉成人久久| 中文字幕久精品免费视频| 欧美特级aaa| 欧美xxxx做受欧美88bbw| 2022国产精品视频| 国产精品自拍偷拍| 久久精品国产亚洲AV无码男同 | 久久久久久久久久97| 中文字幕av一区二区三区四区| 欧美性猛交xxxx乱大交极品| 亚洲国产精品一区在线观看不卡| 国产视频www| 久久精品一区二区国产| 欧美成人在线影院| 在线观看亚洲大片短视频| 国内精品国产成人国产三级粉色| 欧美午夜电影一区| 成人免费性视频| 午夜视频成人| 久久婷婷一区二区三区| 97久草视频| 中文字幕无码乱码人妻日韩精品| 影音先锋亚洲一区| 久久视频国产精品免费视频在线| 免费观看av网站| 中文字幕视频精品一区二区三区| 欧美午夜精品理论片a级按摩| 国产一级爱c视频| 黄色网页在线免费看| 国产午夜亚洲精品理论片色戒| 999热视频| 国产精品久久久久精| 日日摸夜夜添夜夜添国产精品| 国内精品模特av私拍在线观看| 欧美老熟妇一区二区三区| heyzo久久| 亚洲欧美变态国产另类| 亚洲麻豆一区二区三区| 视频欧美一区| 欧美高清精品3d| 欧美黄色性生活| 超碰国产一区| 欧美视频裸体精品| 国产老熟妇精品观看| 久草在线视频资源| 一区二区三区欧美久久| 国产av第一区| 超碰在线观看免费| 亚洲日本一区二区| 色哟哟免费网站| 中文字幕在线三区| 亚洲激情中文1区| 女同性恋一区二区| 在线中文字幕第一页| 亚洲人成网站色在线观看| 中文字幕一区二区三区四区五区六区| porn亚洲| 成人欧美一区二区三区视频网页| 亚洲一区二区三区免费看| 1区2区3区在线观看| 欧美激情一区二区| 亚洲免费久久| a级网站在线播放| 一区二区三区精密机械公司| 日韩一级特黄毛片| 超碰97免费在线| 精品久久久久久| 日韩欧美精品在线观看视频| 国产高清不卡| 欧美日韩成人一区二区| 特级西西444www| 91蝌蚪精品视频| 亚洲精品国产精品自产a区红杏吧| 亚洲欧美日韩色| 自拍视频一区| 日韩在线观看免费高清完整版| www欧美com| 国产精品日韩| 国产美女主播一区| 国产成人av免费看| 99re热视频这里只精品| 色视频一区二区三区| 国产黄大片在线观看画质优化| 一区二区三区在线观看国产| 黄色国产一级视频| 丁香婷婷久久| 精品国产青草久久久久福利| 中文字幕狠狠干| 99视频精品全部免费在线视频| 久久国产精品视频| 国产精品美女久久久久av爽| 青青草97国产精品免费观看无弹窗版| 成人夜晚看av| 性感美女一级片| 中文字幕在线免费不卡| www.夜夜爱| av在线不卡精品| 欧美大片在线观看| 蜜桃传媒一区二区亚洲| 欧美在线日韩| 国产精品久久久久久一区二区 | 欧美激情喷水| 日韩午夜精品视频| 国产123在线| 日韩一级大片| 91性高湖久久久久久久久_久久99| 神马午夜精品95| 亚洲情趣在线观看| 国产一区视频免费观看| 91综合精品国产丝袜长腿久久| 一区二区三区天堂av| 国产精品白浆一区二小说| 日本人妖一区二区| 久久久久国产精品视频| 尤物yw193can在线观看| 欧美日韩久久一区| 亚洲综合色一区| 亚洲国产1区| 91视频8mav| 亚洲精品承认| 在线观看91视频| 丰满大乳奶做爰ⅹxx视频| 欧美久久99| 国产日韩欧美日韩| 国产剧情在线观看| 一本一本大道香蕉久在线精品 | 91精品国产电影| 国产av一区二区三区精品| 国产精品毛片大码女人| 欧美一级黄色片视频| 福利电影一区| 欧美贵妇videos办公室| 国产乱码久久久| 中文字幕中文字幕一区二区| 亚洲精品视频导航| 九九精品在线| 欧美在线观看一区二区三区| 免费看黄网站在线观看| 亚洲国产视频直播| 手机看片国产精品| 一区二区影院| 99热在线播放| 日韩成人伦理| 精品国产一区二区在线观看| 久久久久久久中文字幕| 国产一区二区三区在线看麻豆| 亚洲精品成人自拍| 97成人超碰| 中文字幕日韩av综合精品| 国产精品第六页| 国产欧美综合在线观看第十页| 国产成人久久婷婷精品流白浆| 日本中文字幕在线一区| 欧美一级在线亚洲天堂| 猫咪在线永久网站| 日本精品一区二区三区四区的功能| 日韩av一二区| 日韩精品视频网站| 亚洲人成77777| 日本免费成人| 久久6免费高清热精品| www.五月婷婷| 性感美女久久精品| 亚洲中文字幕无码av| 免费视频一区二区三区在线观看| 噜噜噜噜噜久久久久久91| 一本大道色婷婷在线| 亚洲欧洲一区二区三区在线观看 | 日韩欧美在线视频播放| 精品一区二区三区视频在线观看| 美女黄色片网站| 波多野结衣在线一区二区| 91国内产香蕉| 91caoporm在线视频| 欧美一区二区三区视频| 日韩免费不卡视频| 国产午夜精品一区二区| 亚洲精品性视频| 欧美日韩亚洲一区三区| 欧美激情视频一区二区三区| 91p九色成人| 久久69精品久久久久久久电影好| 五月婷婷深深爱| 欧美吞精做爰啪啪高潮| www.色小姐com| 久久影院午夜论| 午夜一区二区视频| 亚洲先锋成人| 色999五月色| 亚洲图色一区二区三区| 国产成人精品国内自产拍免费看| 激情视频在线观看| 亚洲精品自拍偷拍| 国产手机视频在线| 色女孩综合影院| 一区二区视频免费看| 久久免费的精品国产v∧| 婷婷中文字幕在线观看| 亚洲欧美激情诱惑| 国产精品久久成人免费观看| 在线视频亚洲专区| 超碰国产精品久久国产精品99| 欧洲av一区二区| 国内精品美女av在线播放| 欧美被日视频| 亚洲女人天堂成人av在线| 成人av一区二区三区在线观看| 色狠狠一区二区| 日本少妇在线观看| 日韩一区欧美一区| 亚洲综合欧美综合| 99国产精品99久久久久久| 三日本三级少妇三级99| 久久综合亚州| 熟女少妇在线视频播放| 亚洲午夜精品一区 二区 三区| 欧美日本韩国国产| 亚洲视频一起| 成人激情视频在线播放| 欧美成人精品一区二区男人小说| 伦伦影院午夜日韩欧美限制| xxxxx日韩| 亚洲男人天堂网站| 丰满岳乱妇国产精品一区| 欧美二区三区91| 国产美女www| 色噜噜久久综合| 69成人免费视频| 精品欧美激情精品一区| 精品视频一区二区在线观看| 一区二区在线看| 五月天av网站| 亚洲另类一区二区| 91香蕉视频在线播放| 中文字幕 久热精品 视频在线| 国产精品jizz| 97精品久久久久中文字幕 | 青青视频在线播放| 99精品国产一区二区青青牛奶| 美脚丝袜脚交一区二区| 激情视频一区二区三区| 黄页网站大全在线观看| 黑人一区二区| 日本少妇高潮喷水视频| 亚洲精品社区| 国产精品无码av在线播放| 亚洲美女黄网| 国产精品后入内射日本在线观看| 红桃视频欧美| 久久无码高潮喷水| 丝袜诱惑制服诱惑色一区在线观看| 91视频 -- 69xx| 亚洲在线网站| 成熟老妇女视频| 视频在线在亚洲| 深夜黄色小视频| 国内精品国产成人| 日本美女久久久| 丁香另类激情小说| 日韩精品一区二区三区高清免费| www.66久久| 国产一二三四五区| 国产精品美女久久久久久2018| 黄色录像一级片| 一区av在线播放| 天天爽夜夜爽夜夜爽精品| 色婷婷国产精品| 夜夜爽8888| 欧美tickling挠脚心丨vk| 日韩一区二区三区在线观看视频| 亚洲精品国产成人| aaa在线观看| 久久99久久久久久久噜噜| 动漫一区二区| 国产成人鲁鲁免费视频a| 久久麻豆视频| 国产精品jizz视频| 欧洲在线一区| 国产又黄又爽免费视频| 尹人成人综合网| 日韩精品视频一二三| 国产99久久久国产精品免费看 | 91干在线观看| 国产精品xxx| 国产精品av一区| 日韩欧美精品一区| 分分操这里只有精品| 日本不卡一区二区三区高清视频| 伊人av在线播放| 欧美经典三级视频一区二区三区| 欧美精品乱码视频一二专区| 欧美性少妇18aaaa视频| 国产乱淫a∨片免费视频| 亚洲精品99久久久久| 久cao在线| 4k岛国日韩精品**专区| 99精品美女视频在线观看热舞| 精品在线一区| 欧美伊人久久| 亚洲成人av免费看| av资源网一区| 老司机成人免费视频| 日韩人体视频一二区| 国产黄色av网站| 在线看欧美日韩| 丁香花在线影院| 99久久国产免费免费| 日韩久久电影| 国产精品亚洲αv天堂无码| 国产91在线观看丝袜| 波多野结衣欲乱| 91黄色免费版| 日本电影一区二区在线观看 | 免费亚洲电影| 国产在线欧美日韩| 中文字幕人成人乱码| 91国产精品视频在线观看| www久久精品| 日韩av男人天堂| 欧美xingq一区二区| 黄色网址在线免费| 成人a级免费视频| 欧美性感美女一区二区| 91免费视频网站在线观看| 成人小视频在线| 精品国产乱码久久久久久鸭王1| 欧美视频精品在线观看| 久久久久久久久亚洲精品| 97在线精品国自产拍中文| 国产成人一二片| 免费特级黄色片| 国产精品一区不卡| 国产女人18水真多毛片18精品| 欧美网站一区二区| 日本在线观看免费| 国产精品自在线| 欧美成人直播| 男生操女生视频在线观看| 国产精品美女久久久久高潮| 一级α片免费看刺激高潮视频| 在线看福利67194| 久久精品xxxxx| 在线看视频不卡| 久久99精品久久久久久动态图| 手机看片国产日韩| 欧美另类变人与禽xxxxx| 日本三级视频在线观看| 成人黄色短视频在线观看| 91精品国产乱码久久久久久| 五月六月丁香婷婷| 亚洲综合区在线| 神马久久久久| 国产成人精品一区| 日韩啪啪电影网| 在线免费黄色小视频| 洋洋av久久久久久久一区| 国产91免费在线观看| 午夜精品在线观看| 蜜桃国内精品久久久久软件9| 黄色国产小视频| 1000部国产精品成人观看| 国产激情视频在线播放| 久久青草福利网站| 亚洲区小说区图片区qvod| 欧美大尺度做爰床戏| 亚洲人成亚洲人成在线观看图片| 亚洲av无码国产综合专区| 久久噜噜噜精品国产亚洲综合| 日韩伦理一区二区三区| 成人3d动漫一区二区三区| 亚洲日本一区二区| 性xxxx搡xxxxx搡欧美| 国产精品色视频| 国内精品福利| 久久久久亚洲av成人无码电影| 欧美日本在线视频| 2021中文字幕在线| 日本视频一区二区不卡| 国产一区二区三区免费看| 日本一区二区三区四区五区| 亚洲午夜色婷婷在线| www 久久久| av动漫在线看| 中文字幕中文乱码欧美一区二区| 国产小视频一区| 国产精品久久久久77777| 中文字幕日韩欧美精品高清在线| 人妻精品久久久久中文字幕| 制服丝袜亚洲网站| 正在播放日韩精品| 国产精品美女在线播放| 91免费视频网| 国内老熟妇对白xxxxhd| 国产va免费精品高清在线| 亚洲天堂久久| 永久免费未视频| 亚洲一级免费视频| 国产ts一区|