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

PhoneGap API介紹:Storage

移動開發
本文將介紹PhoneGap API——Storage:截獲設備的本地存儲選項。Storage提供對設備的存儲選項的訪問。此API基于W3C WEB SQL Database Specification和W3C Web Storage API Specification。有些設備已經提供了對該規范的實現,對于這些設備采用內置實現而非使用PhoneGap的實現。對于沒有存儲支持的設備,PhoneGap的實現應該是完全兼容W3C規范。

方法

參數

對象:

 openDatabase

  • 返回一個新的Database對象。
  1. var dbShell = window.openDatabase(name, version, display_name, size); 

說明

  • window.openDatabase返回一個新的Database對象。
  • 該方法將創建一個新的SQL Lite數據庫,并返回該Database對象??墒褂迷揇atabase對象操作數據。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 6.0或更高版本)
  • iPhone

簡單的范例

  1. var db = window.openDatabase("test""1.0""Test DB", 1000000); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9. // 等待加載PhoneGap 
  10. document.addEventListener("deviceready", onDeviceReady, false); 
  11.  
  12. // PhoneGap加載完畢 
  13. function onDeviceReady() { 
  14.     var db = window.openDatabase("test", "1.0", "Test DB", 1000000); 
  15.  
  16. </script> 
  17. </head> 
  18. <body> 
  19.     <h1>Example</h1> 
  20.     <p>Open Database</p> 
  21. </body> 
  22. </html> 

name
數據庫的名稱。
version

  • 數據庫的版本號。

display_name

  • 數據庫的顯示名。

size

  • 以字節為單位的數據庫大小。

Database

  • 包含允許用戶操作數據庫的方法。

方法

  • transaction:運行一個數據庫事務。
  • changeVersion:該方法允許腳本執行以下原子操作:校驗數據庫的版本號并更新版本號以完成架構更新。

詳述

  • 調用window.openDatabase()將返回一個Database對象。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 6.0或更高版本)
  • iPhone

Transaction 的簡單范例

  1. function populateDB(tx) { 
  2.     tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  3.     tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  4.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  5.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  6.  
  7. function errorCB(err) { 
  8.        alert("Error processing SQL: "+err.code); 
  9.  
  10. function successCB() { 
  11.        alert("success!"); 
  12.  
  13. var db = window.openDatabase("Database""1.0""PhoneGap Demo", 200000); 
  14. db.transaction(populateDB, errorCB, successCB); 
  15. Change Version的簡單范例: 
  16.  
  17. var db = window.openDatabase("Database""1.0""PhoneGap Demo", 200000); 
  18. db.changeVersion("1.0""1.1"); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 等待加載PhoneGap 
  10.     document.addEventListener("deviceready", onDeviceReady, false); 
  11.      
  12.     // PhoneGap加載完畢 
  13.     function onDeviceReady() { 
  14.         var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  15.         db.transaction(populateDB, errorCB, successCB); 
  16.     } 
  17.      
  18.     // 填充數據庫 
  19.     function populateDB(tx) { 
  20.         tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  21.         tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  22.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  23.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  24.     } 
  25.      
  26.     // 事務執行出錯后調用的回調函數 
  27.     function errorCB(tx, err) { 
  28.         alert("Error processing SQL: "+err); 
  29.     } 
  30.      
  31.     // 事務執行成功后調用的回調函數 
  32.     function successCB() { 
  33.         alert("success!"); 
  34.     } 
  35.  
  36. </script> 
  37. </head> 
  38. <body> 
  39.     <h1>Example</h1> 
  40.     <p>Database</p> 
  41. </body> 
  42. </html> 

Android 1.X 的特異情況

  • changeVersion:Android 1.X設備不支持此方法。

SQLTransaction

  • 包含允許用戶對Database對象執行SQL語句的方法。

方法

  • executeSql:執行一條SQL語句。

詳述

  • 當你調用Database對象的transaction方法后,其回調函數將被調用并接收一個SQLTransaction對象。用戶可以通過多次調用executeSql來建立一個數據庫事務處理。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 6.0或更高版本)
  • iPhone

Execute SQL的簡單范例

  1. function populateDB(tx) { 
  2.     tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  3.     tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  4.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  5.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  6.  
  7. function errorCB(err) { 
  8.        alert("Error processing SQL: "+err); 
  9.  
  10. function successCB() { 
  11.        alert("success!"); 
  12.  
  13. var db = window.openDatabase("Database""1.0""PhoneGap Demo", 200000); 
  14. db.transaction(populateDB, errorCB, successCB); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9. // 等待加載PhoneGap 
  10. document.addEventListener("deviceready", onDeviceReady, false); 
  11.  
  12. // PhoneGap加載完畢 
  13. function onDeviceReady() { 
  14.        var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  15.        db.transaction(populateDB, errorCB, successCB); 
  16.  
  17. // 填充數據庫 
  18. function populateDB(tx) { 
  19.     tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  20.     tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  21.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  22.     tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  23.  
  24. // 事務執行出錯后調用的回調函數 
  25. function errorCB(err) { 
  26.        alert("Error processing SQL: "+err); 
  27.  
  28. // 事務執行成功后調用的回調函數 
  29. function successCB() { 
  30.        alert("success!"); 
  31.  
  32. </script> 
  33. </head> 
  34. <body> 
  35.     <h1>Example</h1> 
  36.     <p>SQLTransaction</p> 
  37. </body> 
  38. </html> 

SQLResultSet

  • 當SQLTransaction對象的executeSql方法被調用,將會觸發executeSql中設定的回調函數并返回一個SQLResultSet對象。

屬性

  • insertId:SQLResultSet對象通過SQL語句插入到數據庫的行記錄的行ID。[譯注:如果插入多行的時候,返回***一個行的ID]
  • rowAffected:被SQL語句改變的記錄行數,如果語句沒有影響任何行則設置為0。
  • rows:是一個SQLResultSetRowList對象,表示返回的多條記錄。如果沒有返回任何記錄,則此對象為空。

詳述

  • 當你調用SQLTransaction對象的executeSql方法,將會觸發executeSql中設定的回調函數并返回一個SQLResultSet對象。該結果對象包含三個屬性:***個是insertID返回成功的SQL插入語句所插入行的ID,如果SQL語句不是插入語句則insertID將不被設定;第二個是rowAffected,在SQL查詢操作時此屬性總是0,當插入或更新操作時此屬性返回受到影響的行數;***一個屬性是SQLResultSetList類型,返回SQL查詢語句的返回數據。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS 6.0或更高版本)
  • iPhone

Execute SQL的簡單范例

  1. function queryDB(tx) { 
  2.     tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB); 
  3.  
  4. function querySuccess(tx, results) { 
  5.     // 因為沒有插入記錄,所以返回值為空 
  6.     console.log("Insert ID = " + results.insertId); 
  7.     // 因為這是一條查詢語句所以返回值為0 
  8.     console.log("Rows Affected = " + results.rowAffected); 
  9.     // 返回查詢到的記錄行數量 
  10.     console.log("Insert ID = " + results.rows.length); 
  11.  
  12. function errorCB(err) { 
  13.     alert("Error processing SQL: "+err.code); 
  14.  
  15. var db = window.openDatabase("Database""1.0""PhoneGap Demo", 200000); 
  16. db.transaction(queryDB, errorCB); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 等待加載PhoneGap 
  10.     document.addEventListener("deviceready", onDeviceReady, false); 
  11.      
  12.     // 填充數據庫 
  13.     function populateDB(tx) { 
  14.         tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  15.         tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  16.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  17.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  18.     } 
  19.      
  20.     // 查詢數據庫 
  21.     function queryDB(tx) { 
  22.         tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB); 
  23.     } 
  24.      
  25.     // 查詢成功后調用的回調函數 
  26.     function querySuccess(tx, results) { 
  27.         // 因為沒有插入記錄,所以返回值為空 
  28.         console.log("Insert ID = " + results.insertId); 
  29.         // 因為這是一條查詢語句所以返回值為0 
  30.         console.log("Rows Affected = " + results.rowAffected); 
  31.         // 返回查詢到的記錄行數量 
  32.         console.log("Insert ID = " + results.rows.length); 
  33.     } 
  34.      
  35.     // 事務執行出錯后調用的回調函數 
  36.     function errorCB(err) { 
  37.         console.log("Error processing SQL: "+err.code); 
  38.     } 
  39.      
  40.     // 事務執行成功后調用的回調函數 
  41.     function successCB() { 
  42.         var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  43.         db.transaction(queryDB, errorCB); 
  44.     } 
  45.      
  46.     // PhoneGap加載完畢 
  47.     function onDeviceReady() { 
  48.         var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  49.         db.transaction(populateDB, errorCB, successCB); 
  50.     } 
  51.  
  52. </script> 
  53. </head> 
  54. <body> 
  55.     <h1>Example</h1> 
  56.     <p>Database</p> 
  57. </body> 
  58. </html> 

SQLResultSetList

  • SQLResultSet對象的一個屬性,包含SQL查詢所返回的所有行數據。

屬性

  • length: SQL查詢所返回的記錄行數。

方法

  • item:根據指定索引返回一個行記錄的JavaScript對象。

詳述

  • SQlResultSetList包含一個SQL查詢語句所返回的數據。該對象包含一個長度屬性告知用戶有多少符合查詢條件的行記錄數被返回。通過傳遞指定的索引給該對象的item方法獲取指定的行記錄數據,此item方法返回一個JavaScript對象,其屬性包含前述查詢語句所針對的數據庫的所有列。

支持的平臺

  • Android
  • BlackBerry WebWorks (OS BlackBerry WebWorks (OS 6.0或更高版本)
  • iPhone

Execute SQL的簡單范例

  1. function queryDB(tx) { 
  2.        tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB); 
  3.  
  4. function querySuccess(tx, results) { 
  5.        var len = results.rows.length; 
  6.        console.log("DEMO table: " + len + " rows found."); 
  7.        for (var i=0; i<len; i++){ 
  8.            console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data =  " + results.rows.item(i).data); 
  9.        } 
  10.  
  11. function errorCB(err) { 
  12.        alert("Error processing SQL: "+err.code); 
  13.  
  14. var db = window.openDatabase("Database""1.0""PhoneGap Demo", 200000); 
  15. db.transaction(queryDB, errorCB); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9.     // 等待加載PhoneGap 
  10.     document.addEventListener("deviceready", onDeviceReady, false); 
  11.      
  12.     // 填充數據庫 
  13.     function populateDB(tx) { 
  14.         tx.executeSql('DROP TABLE DEMO IF EXISTS'); 
  15.         tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)'); 
  16.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")'); 
  17.         tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")'); 
  18.     } 
  19.      
  20.     // 查詢數據庫 
  21.     function queryDB(tx) { 
  22.         tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB); 
  23.     } 
  24.      
  25.     // 查詢成功后調用的回調函數 
  26.     function querySuccess(tx, results) { 
  27.         var len = results.rows.length; 
  28.         console.log("DEMO table: " + len + " rows found."); 
  29.         for (var i=0; i<len; i++){ 
  30.             console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data =  " + results.rows.item(i).data); 
  31.         } 
  32.     } 
  33.      
  34.     // 事務執行出錯后調用的回調函數 
  35.     function errorCB(err) { 
  36.         console.log("Error processing SQL: "+err.code); 
  37.     } 
  38.      
  39.     // 事務執行成功后調用的回調函數 
  40.     function successCB() { 
  41.         var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  42.         db.transaction(queryDB, errorCB); 
  43.     } 
  44.      
  45.     // PhoneGap加載完畢 
  46.     function onDeviceReady() { 
  47.         var db = window.openDatabase("Database", "1.0", "PhoneGap Demo", 200000); 
  48.         db.transaction(populateDB, errorCB, successCB); 
  49.     } 
  50.  
  51. </script> 
  52. </head> 
  53. <body> 
  54.     <h1>Example</h1> 
  55.     <p>Database</p> 
  56. </body> 
  57. </html> 

SQLError

  • 出現錯誤時,將拋出一個SQLError對象。

屬性

  • code: 一個在下面常量列表中定義好的錯誤代碼c。
  • message:關于此錯誤的說明。

常量

  • SQLError.UNKNOWN_ERR:未知錯誤
  • SQLError.DATABASE_ERR:數據庫錯誤
  • SQLError.VERSION_ERR:版本錯誤
  • SQLError.TOO_LARGE_ERR:數據集過大錯誤
  • SQLError.QUOTA_ERR:超過數據庫配額錯誤
  • SQLError.SYNTAX_ERR:語法錯誤
  • SQLError.CONSTRAINT_ERR:約束錯誤
  • SQLError.TIMEOUT_ERR:超時錯誤

說明

  • 操作數據庫出現錯誤時,將拋出一個SQLError對象。

localStorage

  • 提供對W3C Storage接口(http://dev.w3.org/html5/webstorage/#the-localstorage-attribute)的訪問。
  1. var storage = window.localStorage; 

方法

  • key:返回指定位置的鍵的名稱。
  • getItem: 返回指定鍵所對應的記錄。
  • setItem:存儲一個鍵值對。
  • removeItem:刪除指定鍵對應的記錄。
  • clear:刪除所有的鍵值對。

詳述

  • localStorage提供對W3C Storage接口的訪問,可以使用鍵值對的方式存儲數據。

支持的平臺

  • Android
  • BlackBerry WebWorks(OS 6.0或更高版本)
  • iPhone

Key 的簡單范例

  1. var keyName = window.localStorage.key(0); 

Set Item的簡單范例

  1. window.localStorage.setItem("key""value"); 

Get Item的簡單范例

  1. var value = window.localStorage.getItem("key"); 
  2. // value的值現在是"value" 

Remove Item的簡單范例

  1. window.localStorage.removeItem("key"); 

Clear的簡單范例

  1. window.localStorage.clear(); 

完整的范例

  1. <!DOCTYPE html> 
  2. <html> 
  3. <head>     
  4. <title>Contact Example</title> 
  5.  
  6. <script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
  7. <script type="text/javascript" charset="utf-8"> 
  8.  
  9. // 等待加載PhoneGap 
  10. document.addEventListener("deviceready", onDeviceReady, false); 
  11.  
  12. // PhoneGap加載完畢 
  13. function onDeviceReady() { 
  14.        window.localStorage.setItem("key", "value"); 
  15.        var keyname = window.localStorage.key(i); 
  16.        [譯注:應當是var keyname = window.localStorage.key(0);] 
  17.        // keyname的值現在是“key” 
  18.        var value = window.localStorage.getItem("key"); 
  19.        // value的值現在是“value” 
  20.        window.localStorage.removeItem("key"); 
  21.        window.localStorage.setItem("key2", "value2"); 
  22.        window.localStorage.clear(); 
  23.        // localStorage現在是空的 
  24.  
  25. </script> 
  26. </head> 
  27. <body> 
  28.     <h1>Example</h1> 
  29.     <p>localStorage</p> 
  30. </body> 
  31. </html> 

 

責任編輯:佚名 來源: PhoneGap中國
相關推薦

2011-12-19 16:09:32

PhoneGap APCamera

2011-12-20 11:20:46

PhoneGap APCompass

2011-12-22 10:33:39

PhoneGap APNotificatio

2011-12-22 09:54:40

PhoneGap APMedia

2011-12-19 15:30:25

AccelerometPhoneGap AP

2011-12-19 16:26:39

PhoneGap APCapture

2011-12-20 17:15:52

PhoneGap APEvents

2011-12-22 09:27:36

PhoneGap APGeolocation

2011-12-20 15:34:55

PhoneGap APConnection

2011-12-21 21:56:45

PhoneGap APFile

2011-12-20 13:32:52

PhoneGap APContacts

2011-12-20 16:09:57

PhoneGap APDevice

2011-12-30 14:09:32

PhoneGap APCompass視頻

2011-12-30 13:59:38

PhoneGap APDevice視頻

2011-12-30 13:47:57

PhoneGap AP視頻Contacts

2011-12-30 14:16:02

AccelerometPhoneGap AP視頻

2011-12-30 14:05:17

PhoneGap APConnection視頻

2011-12-30 14:13:05

PhoneGap APCamera視頻

2011-09-13 14:07:45

PhoneGap AP

2011-07-05 17:29:53

PhoneGapevents
點贊
收藏

51CTO技術棧公眾號

国产精品正在播放| 999久久久精品国产| 五月婷婷激情综合| 欧美日产一区二区三区在线观看| 婷婷激情五月综合| 久久精品青草| 日韩经典中文字幕| 欧美成人乱码一二三四区免费| 天堂8中文在线| www日韩大片| 国产日韩欧美在线视频观看| 日韩精品视频免费播放| 日韩在线高清| 亚洲毛片在线观看.| 久久精品视频在线观看免费| 夜鲁夜鲁夜鲁视频在线播放| 自拍偷拍国产精品| 欧美动漫一区二区| 亚洲欧美黄色片| 青青草精品视频| 性色av一区二区三区| 日本午夜精品视频| 欧美wwwwww| 91精品国产91久久久久久最新毛片| 国产精品宾馆在线精品酒店| www亚洲色图| 亚洲视频国产| 欧美日韩在线精品一区二区三区激情| 国产va亚洲va在线va| 日本成a人片在线观看| 91蜜桃免费观看视频| 91成人在线看| 亚洲天堂自拍偷拍| 香蕉久久国产| 午夜美女久久久久爽久久| 成人自拍小视频| 成人国产精品一级毛片视频| 日韩激情av在线播放| 亚洲区 欧美区| 亚洲综合伊人| 欧美老女人在线| 亚洲人成网站在线观看播放| 亚洲欧洲国产综合| 成人aa视频在线观看| 91久久久一线二线三线品牌| 国产又大又长又粗| 美腿丝袜在线亚洲一区| 国产成人拍精品视频午夜网站| 成年人免费观看视频网站| 成人h动漫精品一区二区器材| 91精品国产福利| 性鲍视频在线观看| 国产精品一站二站| 欧美一区二区三区视频| 中文字幕成人免费视频| 成人免费一区| 欧美伊人久久久久久久久影院| 欧美污视频网站| 欧美亚洲韩国| 在线观看视频一区二区欧美日韩 | 国产精品久久久久蜜臀 | 亚洲xxxx18| 国产ts变态重口人妖hd| 国产精品影视网| eeuss一区二区三区| 国产成人久久精品77777综合 | 日本不卡网站| 黑人巨大精品欧美一区二区三区| 国产中文字幕在线免费观看| 久久人体大尺度| 色av一区二区| 天天色综合天天色| 在线日韩三级| 精品国产免费久久| 国产精品久久不卡| 国产一区二区三区探花| 中文字幕日本欧美| 国产一区二区视频在线观看免费| 欧美激情视频一区二区三区免费| 久久久久国产精品免费网站| 99热只有这里有精品| 久久精品综合| 国产日韩欧美在线观看| 亚洲成人第一区| 久久婷婷综合激情| 亚洲人体一区| 黄色视屏在线免费观看| 色婷婷综合久久久久中文一区二区| 不卡av免费在线| 污网站在线免费看| 精品久久久久久久久久国产| 午夜免费精品视频| 激情不卡一区二区三区视频在线| 欧美精品一区二区三区视频| 久久只有这里有精品| 99精品视频精品精品视频| 久久久免费电影| 成人小视频在线播放| 国产一区二区不卡| 美日韩免费视频| 岛国成人毛片| 欧美视频第一页| 国产资源中文字幕| 台湾色综合娱乐中文网| 久久亚洲精品视频| 日本一区二区免费电影| 国产一区二区三区免费看 | 亚洲国产视频一区| 三年中国国语在线播放免费| 电影一区二区在线观看| 中文字幕一区日韩电影| 日本网站在线免费观看| 久久精品国产精品亚洲精品| 精品日本一区二区三区| 蜜桃视频网站在线| 色999日韩国产欧美一区二区| 好吊操视频这里只有精品| 清纯唯美综合亚洲| 97视频在线观看免费| 国产高潮在线观看| 国产精品视频一二| 99热成人精品热久久66| www.神马久久| 日韩中文视频免费在线观看| 久久久精品毛片| av电影一区二区| 成人av在线播放观看| 深夜福利亚洲| 中文字幕亚洲欧美日韩高清| 久久久久久久极品| 成人一道本在线| 国产一二三四区在线观看| av成人在线观看| 亚洲视频axxx| 天堂网中文字幕| 91欧美一区二区| 秋霞无码一区二区| 精品视频自拍| 97欧美精品一区二区三区| www.桃色av嫩草.com| 最新中文字幕一区二区三区| 自拍偷拍21p| 成人在线视频免费观看| 国产精品video| 国产美女性感在线观看懂色av | 欧美精品免费看| 国产免费黄色网址| 国产乱码一区二区三区| 亚洲一区三区| 四虎影视精品永久在线观看| 最新国产精品亚洲| 怡红院成永久免费人全部视频| 久久久久国产精品麻豆ai换脸| 日批视频在线免费看| 亚洲国产合集| 国产国语videosex另类| 国产高清视频免费最新在线| 欧美体内she精视频| 又嫩又硬又黄又爽的视频| 蜜桃久久久久久| 一区二区三区四区五区精品| 亚洲欧美综合久久久久久v动漫| 中文字幕成人精品久久不卡 | 中文av在线全新| 亚洲三级 欧美三级| 日本成人一级片| 18欧美乱大交hd1984| 免费黄色av网址| 99av国产精品欲麻豆| 麻豆精品传媒视频| 国产精品久久久久久久久久齐齐| 久久精品成人一区二区三区 | 欧美jizz18| 欧美精品一区二区三区国产精品| 丰满肥臀噗嗤啊x99av| 午夜亚洲福利老司机| 一级片手机在线观看| 久草热8精品视频在线观看| japanese在线播放| 卡通动漫国产精品| 国产精品高清在线观看| 超碰caoporn久久| 亚洲精品电影在线| 久久这里只有精品9| 亚洲精品免费电影| 在线xxxxx| 男女男精品视频| 国产精品视频二| 黑人操亚洲人| 亚洲字幕在线观看| 97久久香蕉国产线看观看| 日韩有码视频在线| 天天操天天干天天插| 欧美性猛交一区二区三区精品| 麻豆成人在线视频| 国产日产欧美精品一区二区三区| 国产xxxxhd| 日韩极品在线观看| www.av毛片| 精品中文在线| 欧日韩不卡在线视频| 黄黄的网站在线观看| 精品小视频在线| 99riav国产| 欧美在线色视频| 国产精品成人av久久| 国产精品短视频| 日本黄色录像片| 国产一区二区三区四| 青青草精品视频在线观看| 亚洲久久一区二区| 国产免费xxx| 色喇叭免费久久综合网| 久久国产精品一区二区三区四区 | 蜜桃视频在线观看91| 欧美成人精品一级| 国产精品女人网站| 成人小电影网站| 久久久亚洲精选| 18网站在线观看| 久久偷看各类女兵18女厕嘘嘘| 国产一二三区在线视频| 亚洲精品aⅴ中文字幕乱码 | 国产激情偷乱视频一区二区三区| 国产主播中文字幕| 六月婷婷一区| 国产极品在线视频| 亚洲午夜精品久久久久久app| 亚洲激情一区二区| 免费观看久久av| 久久久久久久久久久久久9999| 91麻豆精品激情在线观看最新| 91精品久久久久| 国产精品久久久久久久久久齐齐 | 久久天堂久久| 91色p视频在线| 在线观看亚洲精品福利片| 国产欧美精品一区二区三区介绍| 欧美暴力调教| 国产精品久久不能| 欧美黄色三级| 国产精品久久久久高潮| 免费污视频在线一区| 国产精品成人免费电影| 久久91导航| 国产成人精品久久二区二区91| 正在播放日韩精品| 国产不卡在线观看| 国模视频一区| 国产精品嫩草影院一区二区| jizz亚洲女人高潮大叫| 国产精品普通话| 日本免费在线一区| 91亚洲永久免费精品| 国产在线不卡一区二区三区| 5g国产欧美日韩视频| 日韩一区二区三区高清在线观看| 91原创国产| 国产精品极品在线观看| 狠狠干一区二区| 国产成人手机高清在线观看网站| 日本在线成人一区二区| 日韩欧美一区二区三区在线视频| 亚洲一区尤物| 亚洲视频福利| 国产超级av在线| 免费观看在线综合| 在线免费观看av网| 成人丝袜18视频在线观看| 日本一卡二卡在线| 国产视频一区二区在线观看| 国产探花视频在线播放| 亚洲欧美偷拍卡通变态| 日本网站免费观看| 欧美在线不卡一区| 精品久久久免费视频| 亚洲精品国产精品自产a区红杏吧| 久久精品蜜桃| 欧美另类精品xxxx孕妇| 欧美成人精品一区二区男人小说| 国产日韩欧美在线| 国产精品丝袜在线播放| 图片区小说区区亚洲五月| 欧美成人嫩草网站| 久久免费视频3| 麻豆freexxxx性91精品| 99久久久无码国产精品性波多| 久久先锋影音av| 精品人妻伦九区久久aaa片| 天天色天天爱天天射综合| 伊人免费在线观看高清版| 日韩欧美国产电影| 国产天堂素人系列在线视频| 欧美黄色性视频| 欧美日韩不卡| 国产精品一区二区三区四区五区| 精品国产一区二区三区| 国产乱子伦精品无码专区| 日本亚洲视频在线| 人妻激情偷乱频一区二区三区| 国产亚洲一二三区| 久久久久99精品| 欧美蜜桃一区二区三区| 男人的天堂在线视频| 欧美大奶子在线| 欧美日韩伦理一区二区| 免费99视频| 国户精品久久久久久久久久久不卡| 五月婷婷丁香综合网| 不卡高清视频专区| 黄色一级片中国| 欧美午夜精品一区| 日韩欧美在线观看一区二区| 欧美激情性做爰免费视频| 看片一区二区| 日韩精品国内| 免费日韩av片| 视频免费在线观看| 亚洲精品日韩一| 一区二区www| 中文字幕精品国产| 欧美日韩电影免费看| 精品国产乱码久久久久久88av| 一区二区三区中文| www.se五月| 国产精品网站在线| 天天射天天干天天| 日韩精品www| 香蕉伊大人中文在线观看| 国产98在线|日韩| 欧美日韩视频一区二区三区| 亚洲怡红院在线| 国产精品麻豆网站| 又骚又黄的视频| 自拍偷拍亚洲欧美| 国产精品原创视频| 午夜精品一区二区在线观看的| 噜噜噜91成人网| av黄色在线免费观看| 欧美色图在线视频| 黄色免费在线播放| 欧美整片在线观看| 九九亚洲视频| 国产97色在线 | 日韩| 国产欧美日韩三区| 最近中文字幕在线观看| 中文字幕亚洲一区在线观看| 欧美成人毛片| 欧美 国产 精品| 国产剧情一区二区| 久久精品波多野结衣| 欧美精品一区二区三区蜜桃| h片精品在线观看| 久久er99热精品一区二区三区| 国产亚洲一区在线| 在线免费观看麻豆| 在线观看一区日韩| 日本中文字幕在线2020| 亚洲自拍小视频| 99re国产精品| b站大片免费直播| 欧美三级中文字| 中文字幕有码在线视频| 成人欧美一区二区三区视频 | 日韩在线观看一区 | 国产免费一区二区三区四区五区| 亚洲色图av在线| 亚洲香蕉久久| 玖玖精品在线视频| 不卡的av在线播放| 免费看污视频的网站| 久久精品国产2020观看福利| 成人台湾亚洲精品一区二区| 国产精品秘入口18禁麻豆免会员| 国产精品素人一区二区| 国产chinasex对白videos麻豆| 久久久久久高潮国产精品视| 欧美日韩播放| 欧美成人手机在线视频| 性做久久久久久免费观看欧美| 国产尤物视频在线| 91九色国产视频| 中文久久精品| 亚洲 欧美 变态 另类 综合| 亚洲国产成人久久综合| 一呦二呦三呦精品国产| 亚洲国产一二三精品无码| 2024国产精品视频| 国产精品一二三四五区| 78m国产成人精品视频| 日韩一区二区中文| 在线观看亚洲免费视频| 欧美无砖砖区免费| 操喷在线视频| 一区二区三区四区视频在线观看| 暴力调教一区二区三区| 亚洲在线免费观看视频| 久久久亚洲成人| 久久久久久久久久久久久久久久久久| 星空大象在线观看免费播放|