日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

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

编程问答

React Native使用指南-原生模块

發布時間:2024/7/23 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 React Native使用指南-原生模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
有時候App需要訪問平臺API,但React Native可能還沒有相應的模塊封裝;或者你需要復用Objective-C、Swift或C++代碼,而不是用JavaScript重新實現一遍;又或者你需要實現某些高性能、多線程的代碼,譬如圖片處理、數據庫、或者各種高級擴展等等。

我們把React Native設計為可以在其基礎上編寫真正的原生代碼,并且可以訪問平臺所有的能力。這是一個相對高級的特性,我們并不認為它應當在日常開發的過程中經常出現,但具備這樣的能力是很重要的。如果React Native還不支持某個你需要的原生特性,你應當可以自己實現該特性的封裝。

本文是關于如何封裝原生模塊的高級向導,我們假設您已經具備Objective-C或者Swift,以及iOS核心庫(Foundation、UIKit)的相關知識。

iOS 日歷模塊演示

本向導將會用iOS日歷API作為示例。我們的目標就是在Javascript中可以訪問到iOS的日歷功能。

在React Native中,一個“原生模塊”就是一個實現了“RCTBridgeModule”協議的Objective-C類,其中RCT是ReaCT的縮寫。

// CalendarManager.h #import "RCTBridgeModule.h"@interface CalendarManager : NSObject <RCTBridgeModule> @end

為了實現RCTBridgeModule協議,你的類需要包含RCT_EXPORT_MODULE()宏。這個宏也可以添加一個參數用來指定在Javascript中訪問這個模塊的名字。如果你不指定,默認就會使用這個Objective-C類的名字。

// CalendarManager.m @implementation CalendarManagerRCT_EXPORT_MODULE();@end

你必須明確的聲明要給Javascript導出的方法,否則React Native不會導出任何方法。聲明通過RCT_EXPORT_METHOD()宏來實現:

RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString *)location) {RCTLogInfo(@"Pretending to create an event %@ at %@", name, location); }

現在從Javascript里可以這樣調用這個方法:

var CalendarManager = require('react-native').NativeModules.CalendarManager; CalendarManager.addEvent('Birthday Party', '4 Privet Drive, Surrey');

注意: Javascript方法名

導出到Javascript的方法名是Objective-C的方法名的第一個部分。React Native還定義了一個RCT_REMAP_METHOD()宏,它可以指定Javascript方法名。當許多方法的第一部分相同的時候用它來避免在Javascript端的名字沖突。

橋接到Javascript的方法返回值類型必須是void。React Native的橋接操作是異步的,所以要返回結果給Javascript,你必須通過回調或者觸發事件來進行。(參見本文檔后面的部分)

參數類型

RCT_EXPORT_METHOD?支持所有標準JSON類型,包括:

  • string (NSString)
  • number (NSInteger,?float,?double,?CGFloat,?NSNumber)
  • boolean (BOOL,?NSNumber)
  • array (NSArray) 包含本列表中任意類型
  • map (NSDictionary) 包含string類型的鍵和本列表中任意類型的值
  • function (RCTResponseSenderBlock)

除此以外,任何RCTConvert類支持的的類型也都可以使用(參見RCTConvert了解更多信息)。RCTConvert還提供了一系列輔助函數,用來接收一個JSON值并轉換到原生Objective-C類型或類。

在我們的CalendarManager例子里,我們需要把事件的時間交給原生方法。我們不能在橋接通道里傳遞Date對象,所以需要把日期轉化成字符串或數字來傳遞。我們可以這么實現原生函數:

RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString *)location date:(NSNumber *)secondsSinceUnixEpoch) {NSDate *date = [RCTConvert NSDate:secondsSinceUnixEpoch]; }

或者這樣:

RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString *)location date:(NSString *)ISO8601DateString) {NSDate *date = [RCTConvert NSDate:ISO8601DateString]; }

不過我們可以依靠自動類型轉換的特性,跳過手動的類型轉換,而直接這么寫:

RCT_EXPORT_METHOD(addEvent:(NSString *)name location:(NSString *)location date:(NSDate *)date) {// Date is ready to use! }

在Javascript既可以這樣:

CalendarManager.addEvent('Birthday Party', '4 Privet Drive, Surrey', date.getTime()); // 把日期以unix時間戳形式傳遞

也可以這樣:

CalendarManager.addEvent('Birthday Party', '4 Privet Drive, Surrey', date.toISOString()); // 把日期以ISO-8601的字符串形式傳遞

兩個值都會被轉換為正確的NSDate類型。但如果提供一個不合法的值,譬如一個Array,則會產生一個“紅屏”報錯信息。

隨著CalendarManager.addEvent方法變得越來越復雜,參數的個數越來越多,其中有一些可能是可選的參數。在這種情況下我們應該考慮修改我們的API,用一個dictionary來存放所有的事件參數,像這樣:

#import "RCTConvert.h"RCT_EXPORT_METHOD(addEvent:(NSString *)name details:(NSDictionary *)details) {NSString *location = [RCTConvert NSString:details[@"location"]];NSDate *time = [RCTConvert NSDate:details[@"time"]];... }

然后在JS里這樣調用:

CalendarManager.addEvent('Birthday Party', {location: '4 Privet Drive, Surrey',time: date.toTime(),description: '...' })

注意: 關于數組和映射

Objective-C并沒有提供確保這些結構體內部值的類型的方式。你的原生模塊可能希望收到一個字符串數組,但如果JavaScript在調用的時候提供了一個混合number和string的數組,你會收到一個NSArray,里面既有NSNumber也有NSString。對于數組來說,RCTConvert提供了一些類型化的集合,譬如NSStringArray或者UIColorArray,你可以用在你的函數聲明中。對于映射而言,開發者有責任自己調用RCTConvert的輔助方法來檢測和轉換值的類型。

回調函數

警告

本章節內容目前還處在實驗階段,因為我們還并沒有太多的實踐經驗來處理回調函數。

原生模塊還支持一種特殊的參數——回調函數。它提供了一個函數來把返回值傳回給JavaScript。

RCT_EXPORT_METHOD(findEvents:(RCTResponseSenderBlock)callback) {NSArray *events = ...callback(@[[NSNull null], events]); }

RCTResponseSenderBlock只接受一個參數——傳遞給JavaScript回調函數的參數數組。在上面這個例子里我們用Node.js的常用習慣:第一個參數是一個錯誤對象(沒有發生錯誤的時候為null),而剩下的部分是函數的返回值。

CalendarManager.findEvents((error, events) => {if (error) {console.error(error);} else {this.setState({events: events});} })

原生模塊通常只應調用回調函數一次。但是,它可以保存callback并在將來調用。這在封裝那些通過“委托函數”來獲得返回值的iOS API時最為常見。RCTAlertManager中就屬于這種情況。

如果你想傳遞一個更接近Error類型的對象給Javascript,可以用RCTUtils.h提供的RCTMakeError函數。現在它僅僅是發送了一個和Error結構一樣的dictionary給Javascript,但我們考慮在將來版本里讓它產生一個真正的Error對象。

Promises

譯注:這一部分涉及到較新的js語法和特性,不熟悉的讀者建議先閱讀ES6的相關書籍和文檔。

原生模塊還可以使用promise來簡化代碼,搭配ES2016(ES7)標準的async/await語法則效果更佳。如果橋接原生方法的最后兩個參數是RCTPromiseResolveBlock和RCTPromiseRejectBlock,則對應的JS方法就會返回一個Promise對象。

我們把上面的代碼用promise來代替回調進行重構:

RCT_REMAP_METHOD(findEvents,resolver:(RCTPromiseResolveBlock)resolverejecter:(RCTPromiseRejectBlock)reject)) {NSArray *events = ...if (events) {resolve(events);} else {reject(error);} }

現在JavaScript端的方法會返回一個Promise。這樣你就可以在一個聲明了async的異步函數內使用await關鍵字來調用,并等待其結果返回。(雖然這樣寫著看起來像同步操作,但實際仍然是異步的,并不會阻塞執行來等待)。

async function updateEvents() {try {var events = await CalendarManager.findEvents();this.setState({ events });} catch (e) {console.error(e);} }updateEvents();

多線程

原生模塊不應對自己被調用時所處的線程做任何假設。React Native在一個獨立的串行GCD隊列中調用原生模塊的方法,但這屬于實現的細節,并且可能會在將來的版本中改變。通過實現方法- (dispatch_queue_t)methodQueue,原生模塊可以指定自己想在哪個隊列中被執行。具體來說,如果模塊需要調用一些必須在主線程才能使用的API,那應當這樣指定:

- (dispatch_queue_t)methodQueue {return dispatch_get_main_queue(); }

類似的,如果一個操作需要花費很長時間,原生模塊不應該阻塞住,而是應當聲明一個用于執行操作的獨立隊列。舉個例子,RCTAsyncLocalStorage模塊創建了自己的一個queue,這樣它在做一些較慢的磁盤操作的時候就不會阻塞住React本身的消息隊列:

- (dispatch_queue_t)methodQueue {return dispatch_queue_create("com.facebook.React.AsyncLocalStorageQueue", DISPATCH_QUEUE_SERIAL); }

指定的methodQueue會被你模塊里的所有方法共享。如果你的方法中“只有一個”是耗時較長的(或者是由于某種原因必須在不同的隊列中運行的),你可以在函數體內用dispatch_async方法來在另一個隊列執行,而不影響其他方法:

RCT_EXPORT_METHOD(doSomethingExpensive:(NSString *)param callback:(RCTResponseSenderBlock)callback) {dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{// 在這里執行長時間的操作...// 你可以在任何線程/隊列中執行回調函數callback(@[...]);}); }

注意: 在模塊之間共享分發隊列

methodQueue方法會在模塊被初始化的時候被執行一次,然后會被React Native的橋接機制保存下來,所以你不需要自己保存隊列的引用,除非你希望在模塊的其它地方使用它。但是,如果你希望在若干個模塊中共享同一個隊列,則需要自己保存并返回相同的隊列實例;僅僅是返回相同名字的隊列是不行的。

導出常量

原生模塊可以導出一些常量,這些常量在JavaScript端隨時都可以訪問。用這種方法來傳遞一些靜態數據,可以避免通過bridge進行一次來回交互。

- (NSDictionary *)constantsToExport {return @{ @"firstDayOfTheWeek": @"Monday" }; }

Javascript端可以隨時同步地訪問這個數據:

console.log(CalendarManager.firstDayOfTheWeek);

但是注意這個常量僅僅在初始化的時候導出了一次,所以即使你在運行期間改變constantToExport返回的值,也不會影響到JavaScript環境下所得到的結果。

枚舉常量

用NS_ENUM定義的枚舉類型必須要先擴展對應的RCTConvert方法才可以作為函數參數傳遞。

假設我們要導出如下的NS_ENUM定義:

typedef NS_ENUM(NSInteger, UIStatusBarAnimation) {UIStatusBarAnimationNone,UIStatusBarAnimationFade,UIStatusBarAnimationSlide, };

你需要這樣來擴展RCTConvert類:

@implementation RCTConvert (StatusBarAnimation)RCT_ENUM_CONVERTER(UIStatusBarAnimation, (@{ @"statusBarAnimationNone" : @(UIStatusBarAnimationNone),@"statusBarAnimationFade" : @(UIStatusBarAnimationFade),@"statusBarAnimationSlide" : @(UIStatusBarAnimationSlide)},UIStatusBarAnimationNone, integerValue) @end

接著你可以這樣定義方法并且導出enum值作為常量:

- (NSDictionary *)constantsToExport {return @{ @"statusBarAnimationNone" : @(UIStatusBarAnimationNone),@"statusBarAnimationFade" : @(UIStatusBarAnimationFade),@"statusBarAnimationSlide" : @(UIStatusBarAnimationSlide) } };RCT_EXPORT_METHOD(updateStatusBarAnimation:(UIStatusBarAnimation)animationcompletion:(RCTResponseSenderBlock)callback)

你的枚舉現在會用上面提供的選擇器進行轉換(上面的例子中是integerValue),然后再傳遞給你導出的函數。

給Javascript發送事件

即使沒有被JavaScript調用,本地模塊也可以給JavaScript發送事件通知。最直接的方式是使用eventDispatcher:

#import "RCTBridge.h" #import "RCTEventDispatcher.h"@implementation CalendarManager@synthesize bridge = _bridge;- (void)calendarEventReminderReceived:(NSNotification *)notification {NSString *eventName = notification.userInfo[@"name"];[self.bridge.eventDispatcher sendAppEventWithName:@"EventReminder"body:@{@"name": eventName}]; }@end

在JavaScript中可以這樣訂閱事件:

var { NativeAppEventEmitter } = require('react-native');var subscription = NativeAppEventEmitter.addListener('EventReminder',(reminder) => console.log(reminder.name) ); ... // 千萬不要忘記忘記取消訂閱, 通常在componentWillUnmount函數中實現。 subscription.remove();

更多的給JavaScript發送事件的例子,參見RCTLocationObserver.

從Swift導出

Swift不支持宏,所以從Swift向React Native導出類和函數需要多做一些設置,但是大致與Objective-C是相同的。

假設我們已經有了一個一樣的CalendarManager,不過是用Swift實現的類:

// CalendarManager.swift@objc(CalendarManager) class CalendarManager: NSObject {@objc func addEvent(name: String, location: String, date: NSNumber) -> Void {// Date is ready to use!}}

注意: 你必須使用@objc標記來確保類和函數對Objective-C公開。

接著,創建一個私有的實現文件,并將必要的信息注冊到React Native中。

// CalendarManagerBridge.m #import "RCTBridgeModule.h"@interface RCT_EXTERN_MODULE(CalendarManager, NSObject)RCT_EXTERN_METHOD(addEvent:(NSString *)name location:(NSString *)location date:(nonnull NSNumber *)date)@end

請注意,一旦你在IOS中混用2種語言, 你還需要一個額外的橋接頭文件,稱作“bridging header”,用來導出Objective-C文件給Swift。如果你是通過Xcode菜單中的File>New File來創建的Swift文件,Xcode會自動為你創建這個頭文件。在這個頭文件中,你需要引入RCTBridgeModule.h。

// CalendarManager-Bridging-Header.h #import "RCTBridgeModule.h"

同樣的,你也可以使用RCT_EXTERN_REMAP_MODULE和RCT_EXTERN_REMAP_METHOD來改變導出模塊和方法的JavaScript調用名稱。 了解更多信息,請參閱RCTBridgeModule.


本文轉自React Native中文網:http://reactnative.cn/docs/0.20/native-modules-ios.html#content

總結

以上是生活随笔為你收集整理的React Native使用指南-原生模块的全部內容,希望文章能夠幫你解決所遇到的問題。

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

99视频这里有精品 | 91精品在线看 | 亚洲人成人99网站 | 日韩一级黄色片 | 中文字幕在线观看1 | 一区二区激情视频 | 日韩网站在线观看 | 麻豆传媒在线免费看 | 精品一区二区免费在线观看 | 亚洲欧美日韩精品一区二区 | 欧美日韩亚洲在线观看 | 欧美一级电影在线观看 | 欧美无极色 | 国产视频手机在线 | 免费a一级| 四虎影视精品 | av亚洲产国偷v产偷v自拍小说 | 亚洲精品网站在线 | 亚洲精品男人的天堂 | 成人在线免费视频观看 | 欧美综合色在线图区 | 亚洲成a人片77777kkkk1在线观看 | 香蕉影院在线 | 成人动漫一区二区 | 久久综合色8888 | 中文字幕在线观看一区二区 | 高清视频一区 | 麻豆免费视频网站 | 日韩成人精品一区二区三区 | 亚洲精品一区二区精华 | 亚洲综合欧美精品电影 | 在线免费国产视频 | 国产精品久久久999 国产91九色视频 | 久草在线高清视频 | av五月婷婷 | 97精品国产 | 精品福利视频在线观看 | 日韩性片 | 精品久久久久久亚洲 | 日韩乱色精品一区二区 | 国产精品久久在线 | 久久视频在线观看中文字幕 | 在线免费视频一区 | av免费高清观看 | 丁香色综合 | 超碰97中文 | 久久看片网 | 中文字幕在线看视频 | 香蕉97视频观看在线观看 | 在线播放av网址 | 欧美网址在线观看 | 国产日韩精品在线观看 | 久久久午夜剧场 | 香蕉视频啪啪 | 久久99热精品这里久久精品 | 黄色片免费在线 | 成年人在线免费看视频 | 在线免费试看 | 一区二区精品在线 | 久草香蕉在线 | 999视频在线观看 | 国产剧情在线一区 | 99热超碰 | 337p西西人体大胆瓣开下部 | 日韩av午夜在线观看 | 黄色亚洲精品 | 又爽又黄在线观看 | 日日夜夜精品 | 国产亚洲精品久久久网站好莱 | 日韩xxxxxxxxx | 九九九国产 | 精品国产精品国产偷麻豆 | 亚洲成人国产精品 | 月丁香婷婷 | 欧美日在线 | 日韩av成人免费看 | 日女人电影 | 欧美日韩一二三四区 | 成人性生交大片免费看中文网站 | 美女视频黄免费网站 | 麻豆国产精品va在线观看不卡 | 午夜在线日韩 | 日韩城人在线 | 中文字幕免费看 | 亚洲一级免费电影 | 美女精品国产 | 成年人网站免费观看 | 四虎在线视频免费观看 | 日韩午夜大片 | 久久久精品一区二区三区 | 在线av资源 | 美女av在线免费 | 天天射天天操天天干 | 久久久久免费 | 亚洲 在线 | 精品一二三区 | 91久久久久久国产精品 | 久久九九影视 | 天天操夜夜做 | 精品国产成人av | 日韩艹| 色婷婷狠狠五月综合天色拍 | 亚洲成av人片在线观看 | 色婷婷狠狠| 国产小视频91 | 国产91九色视频 | 欧美人牲 | 亚洲色五月 | 亚洲精品在线播放视频 | 五月天婷婷在线观看视频 | 国色天香永久免费 | 国产精品 中文字幕 亚洲 欧美 | 97在线精品视频 | 国产无吗一区二区三区在线欢 | 国产999免费视频 | 97碰在线视频 | 99re国产视频 | 国产四虎影院 | 香蕉网站在线观看 | 五月婷婷国产 | 欧美日韩国产一区二区三区 | 国产v欧美 | 中文字幕最新精品 | 精品久久1 | 久久婷婷激情 | 97干com| 涩涩网站在线观看 | 婷婷av资源| 免费看国产a| 四虎在线免费观看视频 | 久久国产精品免费观看 | 97福利在线观看 | 91精品久久久久久久久 | 精品美女国产在线 | 97免费在线观看视频 | 国产成人三级三级三级97 | 欧美一区日韩一区 | 久久精品9 | 国产成人黄色av | 超碰在线色 | 国产美女无遮挡永久免费 | 96在线| 久久99国产精品免费网站 | 视频99爱 | 51久久成人国产精品麻豆 | 国产精品九九视频 | 国产丝袜制服在线 | 国产一级大片在线观看 | 久久久精品99 | 99视频在线看 | 久久久久免费精品视频 | 国产精品自在欧美一区 | 视频在线日韩 | 国产午夜精品一区二区三区四区 | 色婷婷97 | 久久久久综合精品福利啪啪 | 精品一区在线 | 欧美日韩高清 | 涩涩在线 | 五月婷婷综 | 国产精彩在线视频 | 高清免费在线视频 | 97碰碰视频 | 九九一级片 | 国产免费a | 人人擦| 色噜噜在线观看 | 久av在线 | 日韩a级黄色片 | 国产午夜精品久久久久久久久久 | 九色福利视频 | 草久视频在线观看 | 国产精品大全 | 麻豆国产在线视频 | 很黄很黄的网站免费的 | 天堂av中文字幕 | 综合视频在线 | 日本久久精品 | 国产精品99爱 | 一区二区三区视频 | 国产精品久久久久久久久久久免费看 | 国产91精品在线观看 | 香蕉色综合 | 国产精品黄色 | 97超碰资源总站 | 国产一区二区日本 | 99热这里只有精品8 久久综合毛片 | 婷婷丁香狠狠爱 | 亚洲一级久久 | 2019中文在线观看 | 国产精品成人一区二区三区吃奶 | 丁香激情五月婷婷 | 国产 欧美 在线 | 国产欧美综合在线观看 | 国产精品美女在线观看 | 欧美性天天| 91精品免费视频 | 黄色一二级片 | 欧美日产一区 | 懂色av一区二区三区蜜臀 | 91麻豆看国产在线紧急地址 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 四虎在线观看网址 | 热久久99这里有精品 | 久久国产热 | 久久综合婷婷 | 国产精品成人免费 | 日韩一区二区三区免费视频 | 亚洲乱亚洲乱妇 | 午夜av在线| 色综合天天干 | 免费久久精品视频 | 青青河边草观看完整版高清 | 久久呀 | 天天干天天插伊人网 | 亚洲精品免费在线观看视频 | 亚洲成aⅴ人在线观看 | 91传媒视频在线观看 | 精品播放| 天天操月月操 | 久久精选 | 久久av电影 | 国产精品免费不 | 欧美一区二视频在线免费观看 | 五月av在线 | 最近中文国产在线视频 | av观看网站 | 不卡的av在线 | 99久久久国产免费 | 国产精品日韩 | 在线播放视频一区 | 天天天色综合a | 手机成人免费视频 | 国产这里只有精品 | 国产精品专区在线 | 久草在线国产 | 91禁在线看| 美女网站视频免费都是黄 | 91大神精品视频在线观看 | 夜夜爽天天爽 | 久草电影在线观看 | 久久人人97超碰国产公开结果 | 黄色三级免费观看 | 久久精品这里热有精品 | 国产一在线精品一区在线观看 | 国产真实精品久久二三区 | 国产亚洲精品电影 | 不卡的一区二区三区 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 色瓜| 精品国产一区二区三区四区vr | 久久九九国产视频 | 中文字幕激情 | 国产乱码精品一区二区蜜臀 | 成人国产亚洲 | 天天色天天艹 | 国产成人高清av | 尤物97国产精品久久精品国产 | 国产字幕在线看 | 日韩午夜电影网 | 久久伦理网 | www.黄色网.com| 国产精品色视频 | 一区二区三区精品在线视频 | 中文字幕有码在线观看 | 国产日韩精品一区二区三区 | 91在线国产观看 | 日韩美在线观看 | 欧美色伊人 | 久久综合婷婷综合 | 在线亚洲午夜片av大片 | 日韩剧情 | 毛片精品免费在线观看 | 亚洲色综合 | 国产精品免费视频一区二区 | 婷婷伊人综合亚洲综合网 | v片在线播放 | 一级黄色片在线免费观看 | 日日骑| 精品毛片一区二区免费看 | 免费久久视频 | 欧美一级在线 | 一区二区三区日韩在线观看 | 波多野结衣久久资源 | 成人全视频免费观看在线看 | 天堂在线一区二区 | 免费在线观看一区二区三区 | 免费观看黄 | 国产精品一区专区欧美日韩 | 91系列在线 | 欧美一区在线观看视频 | 一区 二区电影免费在线观看 | 欧美 亚洲 另类 激情 另类 | 青青久视频 | 色多视频在线观看 | 国产精品黄 | 免费在线黄色av | 欧美在线aaa | 国产精品一区二区免费看 | 丁香电影小说免费视频观看 | 国产无遮挡又黄又爽在线观看 | 国产中文字幕av | 日韩最新在线视频 | 欧美日韩免费观看一区二区三区 | 久久久久久久久久免费 | 亚洲精品99| 欧洲高潮三级做爰 | 美女国产网站 | 国产xx在线 | 九九久久免费视频 | 黄色大片免费网站 | 成人久久精品 | 日本公乱妇视频 | 97超碰人人看 | 亚洲一区美女视频在线观看免费 | 亚洲国产中文在线观看 | 久久国产免费看 | 又湿又紧又大又爽a视频国产 | 一区二区精品国产 | 成人免费观看视频大全 | 免费网站污 | 免费观看一级视频 | 黄色小网站免费看 | 欧美日韩三级 | 99视频一区二区 | 亚洲一区视频在线播放 | 久久国产精品免费一区 | 久久精品首页 | wwwav视频| 日韩精品久久久久久久电影竹菊 | 这里只有精品视频在线 | 综合网在线视频 | 免费视频一区 | 日韩中文在线电影 | 麻豆视频免费在线 | 九九亚洲视频 | 夜夜看av| 97**国产露脸精品国产 | 欧美在线1| 综合色在线 | 亚洲jizzjizz日本少妇 | 日韩精品一区不卡 | 久久 一区 | 亚洲成人黄色在线 | 日韩欧美一区二区三区在线观看 | 成人午夜电影免费在线观看 | 99精品国产aⅴ | 亚洲成人精品在线观看 | 国产一区二区观看 | 久久综合亚洲鲁鲁五月久久 | 国产精品一区久久久久 | 久久69av| 在线色亚洲| 久久久久久亚洲精品 | 日本黄色免费大片 | 亚洲最新av网址 | 99热手机在线观看 | 久久xx视频| 高清不卡免费视频 | 国产色视频123区 | 久久成人18免费网站 | 久久精品中文视频 | 91成年人视频 | 国产第一页精品 | 久久久黄色免费网站 | 日韩免费av片 | 中文字幕精 | 91色综合| 99久久久久久久久 | 99爱视频在线观看 | 国产日韩精品一区二区三区 | 黄网av在线 | 国产成人在线综合 | 中文字幕在线观看一区二区 | 久久国色夜色精品国产 | 国产字幕在线观看 | 天天看天天干 | 欧美韩日精品 | 97精品久久人人爽人人爽 | 麻豆91小视频 | 91麻豆精品国产91久久久无限制版 | 婷婷五月在线视频 | 一区二区三区在线免费播放 | 国产二区精品 | 国产成人精品免高潮在线观看 | 欧美福利精品 | 国产女人40精品一区毛片视频 | 少妇bbr搡bbb搡bbb| 91av在线电影 | 男女日麻批 | 久久免费电影网 | 久久午夜精品视频 | 在线观看成年人 | 韩国精品视频在线观看 | 成人免费观看视频大全 | 欧美久草网| 日韩字幕在线观看 | 国产四虎在线 | 欧美性生活小视频 | 精品免费观看 | 手机看片福利 | 成人一级黄色片 | 久草国产视频 | 六月丁香婷婷久久 | 亚洲精品免费在线观看 | 鲁一鲁影院 | 5月丁香婷婷综合 | 国产剧情av在线播放 | 亚洲国产丝袜在线观看 | 亚洲涩涩网 | 天天射天天操天天色 | 婷婷久久综合网 | 超碰精品在线观看 | 激情五月看片 | 视频成人 | 亚洲欧美偷拍另类 | 欧美亚洲另类在线视频 | 手机在线观看国产精品 | 一级淫片在线观看 | 日韩一二区在线 | 久久久男人的天堂 | 欧美aaa大片| 成年人视频在线免费 | 亚洲成人网在线 | 精品黄色在线 | 久久久久久久久久亚洲精品 | 婷婷激情站 | 久久国产美女 | 在线观看欧美成人 | 99精品一区二区 | 亚洲一区精品二人人爽久久 | 九九色综合 | 久久精品精品电影网 | 玖玖在线播放 | 亚洲japanese制服美女 | 999亚洲国产996395 | 天天爱天天干天天爽 | 四虎影视国产精品免费久久 | 99久久超碰中文字幕伊人 | 超碰97久久 | 国产免费又爽又刺激在线观看 | 午夜精品久久久久久久久久久久久久 | 日韩精品免费在线播放 | 天天干天天拍天天操天天拍 | 最新真实国产在线视频 | 一级做a爱片性色毛片www | 久久国产系列 | v片在线看 | 免费进去里的视频 | 欧美日韩精| 欧美婷婷综合 | 国产午夜精品一区二区三区在线观看 | 日韩欧美综合视频 | 色婷婷综合久久久中文字幕 | 欧美韩日在线 | 日韩精品久久一区二区三区 | 91av片| av无限看 | 精品毛片久久久久久 | 少妇啪啪av入口 | 99re久久资源最新地址 | 菠萝菠萝蜜在线播放 | 最近能播放的中文字幕 | 色妞色视频一区二区三区四区 | 免费高清在线观看电视网站 | 精品一区精品二区 | 欧美日韩啪啪 | 中文字幕中文字幕在线中文字幕三区 | 欧美日韩国产在线一区 | 色a在线观看 | 91大神精品视频在线观看 | 超级碰碰碰视频 | 91大神一区二区三区 | 国产在线欧美 | 激情丁香综合五月 | 免费看黄色91 | 菠萝菠萝蜜在线播放 | 99精品国自产在线 | 中文字幕在线观看91 | 日韩在线高清免费视频 | 亚洲三级性片 | 四月婷婷在线观看 | 91亚色视频在线观看 | 三级免费黄色 | 免费在线观看av的网站 | 国产一区自拍视频 | 久久av免费| 少妇视频一区 | 碰超在线| 99中文字幕在线观看 | 久久久免费高清视频 | 国产不卡免费视频 | 午夜国产一区二区 | 天天干天天做 | 亚洲免费高清视频 | 亚洲五月婷婷 | 人人网av| 麻豆视频国产在线观看 | 在线播放精品一区二区三区 | 日韩在线免费播放 | 成人一级片在线观看 | 成人av网页 | 久操中文字幕在线观看 | 亚洲午夜久久久影院 | 亚洲另类在线视频 | 永久精品视频 | 日韩欧美在线第一页 | 丁香花五月 | av资源网在线播放 | 欧美一级片免费 | 亚洲综合视频在线 | 欧美日韩视频免费 | 国产在线免费av | 人人天天夜夜 | 午夜免费在线观看 | 香蕉影院在线观看 | 亚洲年轻女教师毛茸茸 | 五月天婷婷丁香花 | 手机在线永久免费观看av片 | 99精品在线免费在线观看 | 激情影音先锋 | 欧美日韩免费在线视频 | 亚洲成av人影片在线观看 | 黄www在线观看 | 黄色软件大全网站 | 三级a视频| 日本中文字幕网址 | 久久69av | 国产日韩亚洲 | 天天操天天干天天 | 日韩免费av片 | 91精品视频播放 | 51久久成人国产精品麻豆 | 久久综合99 | 久久久久免费精品视频 | a级一a一级在线观看 | www.久久婷婷| 国产精品理论在线观看 | 日韩在线观看视频一区二区三区 | 久久激情婷婷 | 在线免费观看国产 | 午夜视频免费播放 | 国产视频在线观看一区二区 | 欧美一二三区在线观看 | 国产网站av| 国产视频 久久久 | 精品国产资源 | 亚洲九九精品 | 四虎影视成人永久免费观看视频 | 91在线视频在线观看 | 午夜成人免费电影 | 91少妇精拍在线播放 | 成人黄色在线播放 | 三级黄色三级 | 天天干天天草天天爽 | 激情伊人五月天 | 亚洲成人国产 | 国产在线观看免费av | 免费av片在线 | 国产免费av一区二区三区 | 国产视频中文字幕 | 草草草影院 | 91九色丨porny丨丰满6 | 国产精品毛片久久久 | 黄色软件在线看 | 久草在线在线精品观看 | 在线观看视频一区二区 | 成年人app网址 | 欧洲av不卡 | 二区三区精品 | 久久国产精品99久久久久 | 国产精品资源 | 999电影免费在线观看2020 | 91精品视频免费看 | 日韩在线视频免费看 | 91九色精品国产 | 亚洲人成人天堂h久久 | 免费av网站在线看 | av天天色 | 色a综合| 九七视频在线观看 | 亚洲精品男人天堂 | 免费a v视频 | 亚洲免费一级 | 夜色资源站国产www在线视频 | 亚洲专区中文字幕 | 超碰97在线资源 | 九九九九热精品免费视频点播观看 | 美女网站黄在线观看 | 日韩一区二区免费视频 | 国产午夜在线观看视频 | 国产最新视频在线 | 免费在线观看污网站 | 国产只有精品 | 亚洲高清激情 | 激情久久五月 | 国产一级视频在线观看 | 在线日韩中文 | 中文字幕在线观看第一页 | 99久久久久久久久久 | 日本狠狠色 | 欧美色噜噜噜 | www.久久91| 992tv人人草| 久久久久国产精品厨房 | 欧美巨大荫蒂茸毛毛人妖 | 在线激情av电影 | 国产精品视屏 | 中文区中文字幕免费看 | 一区二区三区在线观看免费 | 久久综合久久久 | 国产精品 日韩 欧美 | 九九综合在线 | 天天操夜夜操夜夜操 | 手机av资源 | 操处女逼 | 91亚色视频 | 最新av网址大全 | 99国产精品久久久久久久久久 | 免费在线观看视频a | 亚洲精品乱码久久久久久蜜桃动漫 | 亚洲免费婷婷 | 草久在线 | 色在线中文字幕 | 国产综合福利在线 | 永久中文字幕 | 日韩专区在线播放 | 免费av在线 | 国产精品九九九 | av中文字幕网| 在线 你懂 | 国产剧在线观看片 | 国产精品一区二区三区电影 | 日本在线观看中文字幕 | 在线观看黄色小视频 | 亚洲乱码国产乱码精品天美传媒 | 午夜久草 | 日韩精品久久中文字幕 | 日韩免费久久 | 日韩 精品 一区 国产 麻豆 | 久久精品国产免费 | 97色视频在线 | 亚洲欧美日韩在线看 | 亚洲一区二区三区91 | 亚洲精品久久久蜜臀下载官网 | 亚洲黄网站 | 亚洲深夜影院 | 久久久久久久久久伊人 | 天天爱天天插 | 97超碰国产在线 | 国产高清在线观看 | 日韩免费在线观看网站 | 久久69精品 | 亚洲午夜激情网 | 人人射av | 国产高清免费在线观看 | 久久人人97超碰com | 日韩av一区在线观看 | 亚洲一区二区视频 | 亚洲综合五月天 | 国产成人精品在线播放 | 久久久久久在线观看 | 99电影 | 国产精美视频 | 国产精品理论片 | 九九热在线视频 | 九九九热精品免费视频观看 | 欧美色操 | 亚洲欧美日韩精品久久奇米一区 | 99热99| 中日韩免费视频 | 日本精品一区二区三区在线观看 | 亚洲精品国产精品国自产观看 | 日韩精品一区二区三区视频播放 | 天天躁天天躁天天躁婷 | 国产人成一区二区三区影院 | 婷婷在线视频 | 波多野结衣在线观看一区二区三区 | 亚洲女人天堂成人av在线 | 成人一区二区三区中文字幕 | 黄色网址国产 | 久久综合导航 | 特级黄色片免费看 | 激情久久影院 | 亚洲涩涩涩涩涩涩 | 97人人模人人爽人人喊网 | 免费观看一区二区 | av电影在线播放 | 国产亚洲视频中文字幕视频 | 色999在线 | 97超级碰碰碰碰久久久久 | 免费成人在线网站 | 久久精品一区二区三区视频 | 天天干天天拍天天操天天拍 | av电影一区 | 黄www在线观看 | 中文字幕一区2区3区 | 日本色小说视频 | 99久久日韩精品免费热麻豆美女 | 国产精品不卡在线 | 中文字幕观看在线 | 天天天在线综合网 | 中文字幕免费不卡视频 | 91九色视频网站 | 成人免费电影 | 国产一区二区久久精品 | 精品黄色片 | 国产精品欧美一区二区 | 亚洲成人精品国产 | 丁香六月综合网 | 国产精品视频999 | 午夜视频在线瓜伦 | 日韩欧美极品 | 九九九九热精品免费视频点播观看 | 久久99精品国产麻豆宅宅 | 亚洲伦理中文字幕 | 亚洲欧美乱综合图片区小说区 | 国产福利一区二区在线 | 亚洲国产精品推荐 | 欧美另类老妇 | 在线观看中文字幕网站 | 欧美日韩性生活 | 亚洲激情网站免费观看 | 人人干人人上 | 国产黄色片在线免费观看 | 日本韩国精品一区二区在线观看 | 天天干天天做天天操 | 久久精品视频网址 | 精品黄色在线观看 | 日韩激情三级 | 国产成人三级 | 丁香六月五月婷婷 | 午夜资源站 | 在线一二三区 | 狠狠88综合久久久久综合网 | 午夜精品久久久久久久久久久久 | 欧美 日韩 久久 | 成人黄色电影在线播放 | 国产精品igao视频网网址 | 一区二区三区观看 | 91精品国产综合久久久久久久 | 久草在线观看资源 | 国产不卡一二三区 | 免费在线播放黄色 | 国产精品黑丝在线观看 | 国产九九在线 | 夜夜骑天天操 | 欧美激情视频在线免费观看 | 国产手机av | 玖玖爱免费视频 | 成人91在线观看 | 在线小视频国产 | 国产精品福利在线观看 | 日韩综合视频在线观看 | 午夜精品一区二区三区在线 | 成人国产亚洲 | 91精品入口 | 久青草视频在线观看 | 天天色综合天天 | 久操视频在线观看 | 成人免费xyz网站 | 97超碰成人在线 | 天天干中文字幕 | 欧美aⅴ在线观看 | 日韩大片免费观看 | 日本三级在线观看中文字 | 一级α片 | 中文字幕成人 | 久久夜色精品国产欧美乱 | 日韩成人看片 | 精品 激情| 日韩在线观看视频网站 | 欧美日韩一区二区在线观看 | 色婷婷狠狠五月综合天色拍 | 国产又粗又猛又黄又爽视频 | 久久免费在线观看视频 | 亚洲 欧洲 国产 日本 综合 | 黄色av免费 | 又黄又刺激的视频 | 九九热在线观看视频 | 免费国产在线观看 | 免费观看一级特黄欧美大片 | 97在线观看免费高清完整版在线观看 | 久久国产亚洲视频 | 国产美女视频网站 | 中文字幕日韩伦理 | 成人 亚洲 欧美 | 久草久草久草久草 | 久久九九国产精品 | 中文字幕一区二区三区在线视频 | 久久久999精品视频 国产美女免费观看 | 欧美成人h版在线观看 | 精品一区二区三区四区在线 | 亚洲一区二区视频 | 中文字幕在线字幕中文 | 中文字幕日韩国产 | 91麻豆网 | 精品一区二区三区在线播放 | www国产亚洲精品久久网站 | 狠狠色香婷婷久久亚洲精品 | 国产一区免费在线观看 | 国产 字幕 制服 中文 在线 | 91精品啪| av片在线观看免费 | 日韩 精品 一区 国产 麻豆 | 国产小视频91 | 在线成人中文字幕 | 在线观看日韩av | 黄色av影院 | 美女在线黄 | 精品自拍av | 精品久久久久久国产偷窥 | 日韩二区三区在线观看 | 婷婷激情五月综合 | 五月激情站 | 国产精品一区免费观看 | 国产精品视频免费在线观看 | av手机在线播放 | 久久夜夜爽 | 国产xx在线| 国产成人久久精品亚洲 | 国产成人精品三级 | 久久精品国产精品亚洲精品 | 草久在线观看 | 欧美网站黄色 | 国产一区高清在线观看 | 日韩av电影中文字幕在线观看 | 中文字幕在线一区二区三区 | 日韩av一区二区在线播放 | 日韩午夜电影网 | 久久免费看毛片 | 激情五月婷婷综合 | 麻豆国产视频 | 天天综合网 天天 | 日韩视频一区二区在线观看 | 免费高清在线观看成人 | 国产亚洲综合性久久久影院 | 国产91精品久久久久 | 精品一区二区视频 | 国产在线观看h | 91精品国产成| 999久久久精品视频 日韩高清www | 亚洲综合色视频在线观看 | 天天干,天天插 | 人人干,人人爽 | 国产日产精品久久久久快鸭 | 国产精品久久久久久久久费观看 | 黄色免费网战 | 欧美日韩精品免费观看 | 97免费| 在线观看免费一级片 | 69精品在线| 探花国产在线 | 国外av在线 | 超碰免费97 | 另类老妇性bbwbbw高清 | 亚洲精品日韩在线观看 | 亚洲日日夜夜 | 波多野结衣电影一区 | 天天干夜夜夜操天 | 亚洲欧美日韩一区二区三区在线观看 | 精品国产黄色片 | 免费在线观看av | 成人午夜精品福利免费 | 成人在线免费小视频 | 六月丁香社区 | 亚洲福利精品 | 夜夜夜夜操 | 午夜精品久久久久久中宇69 | 日日日爽爽爽 | 国产精品免费在线 | 久久久久这里只有精品 | 久久精品国产v日韩v亚洲 | 国产高清av免费在线观看 | 一本一道波多野毛片中文在线 | 97国产一区二区 | 久久久免费在线观看 | 国产色女人 | 成人在线免费视频 | 欧美作爱视频 | 在线观看国产亚洲 | 日本中文字幕网址 | 六月婷色 | 免费a v视频 | 日韩成人看片 | 精品国内自产拍在线观看视频 | 特级黄色片免费看 | 免费观看第二部31集 | 成人av影视| 最新中文字幕在线观看视频 | 黄污在线看| 欧美亚洲成人xxx | 免费在线观看日韩 | 成 人 黄 色 片 在线播放 | 人人看人人艹 | 久久er99热精品一区二区三区 | 亚洲涩涩涩 | 精品国产免费av | 亚洲精品在线免费播放 | 国产剧情一区二区 | 婷婷色 亚洲 | 天堂av免费 | 91片网| 精品视频久久久 | 国产精品久久网站 | 国内综合精品午夜久久资源 | 久久综合色天天久久综合图片 | av电影一区二区三区 | 国产精品亚洲a | 日韩精品五月天 | 91色九色 | 成人免费在线看片 | 在线观看免费一级片 | 久久手机免费观看 | 人人澡人人草 | 亚洲干 | 午夜精品婷婷 | 亚洲精品久久久久www | 在线观看日本高清mv视频 | 成人在线播放av | 狠狠狠色丁香综合久久天下网 | 久久99欧美| 色噜噜狠狠色综合中国 | 国产中文a | 精品国产免费人成在线观看 | 91丨九色丨蝌蚪丨老版 | 午夜.dj高清免费观看视频 | 六月丁香在线视频 | 日韩一区在线免费观看 | 亚洲狠狠婷婷 | 日日干av | 亚洲成av人片在线观看www | 日韩三级久久 | 日韩经典一区二区三区 | 在线中文字幕播放 | 成人精品999| 97免费在线观看视频 | av黄色亚洲 | 中文字幕传媒 | 亚洲一区二区三区毛片 | 91中文在线 | 天天做日日爱夜夜爽 | 久久综合一本 | 人人爽人人爽av | 91尤物在线播放 | 国产精品免费在线观看视频 | 麻豆精品91 | 波多野结衣在线视频免费观看 | 精品五月天 | 天天干天天操天天入 | 精品国产乱码久久久久久1区二区 | 天天爽夜夜爽精品视频婷婷 | 日韩二区在线观看 | 日日干干夜夜 | 国产精品免费久久久久影院仙踪林 | 国产成人99av超碰超爽 | 五月婷综合 | 国产精品美女999 | 免费在线91| 免费a v观看 | 久久人人爽人人人人片 | 午夜av一区二区三区 | www日韩在线观看 | 国产原创av在线 | 天天色天天草天天射 | 中文字幕视频一区二区 | 日日干天天射 | 免费黄av| 欧美日韩视频一区二区三区 | 天天曰夜夜爽 | 亚洲精品综合一区二区 | 久久精品久久久久电影 | 99久久国产免费免费 | 99热99| 久久综合色婷婷 | 六月丁香色婷婷 | 欧美一级免费高清 | 婷婷精品国产一区二区三区日韩 | 国产精品久久久久久久久久三级 | 成人动漫一区二区三区 | av三级av | 青青河边草观看完整版高清 | 国产视频91在线 | 国产人成一区二区三区影院 | 国产精品免费久久久久久久久久中文 | a级片在线播放 | 午夜久久久久久久久久久 | 久久久精品综合 | 亚洲精品小视频 | 日本精品视频一区二区 | 成年人免费电影 | 激情视频区 | 亚洲精品综合欧美二区变态 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 久久精品99北条麻妃 | 精品国产亚洲一区二区麻豆 | 日韩精品免费一区 |