99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

開源鴻蒙跨端實(shí)戰(zhàn):React Native多端布局與交互高可用全解析

開源鴻蒙跨端實(shí)戰(zhàn):React Native多端布局與交互高可用全解析 《開源鴻蒙跨平臺(tái)開發(fā)先鋒訓(xùn)練營(yíng)》走到第 10 天這批學(xué)員已經(jīng)從“Hello World”一路寫到了真機(jī)聯(lián)調(diào)。今天這一課我們把過(guò)去兩天反復(fù)提到的 React Native for OpenHarmony 實(shí)戰(zhàn)拉滿目標(biāo)非常直接用一套 React Native 代碼同時(shí)跑通 OpenHarmony 手機(jī)、平板和 RK3568 開發(fā)板布局不亂、交互不崩、現(xiàn)場(chǎng)不出事故。說(shuō)實(shí)話訓(xùn)練營(yíng)前 9 天里大家問(wèn)得最多的不是“ArkUI 怎么寫”而是“我們團(tuán)隊(duì)現(xiàn)有 RN 資產(chǎn)到底能不能低成本平移過(guò)來(lái)”。所以 Day 10 沒(méi)有去硬推全量 ArkUI 重構(gòu)而是帶著大家實(shí)操了一輪多端響應(yīng)式布局和高可用交互設(shè)計(jì)把真正會(huì)影響交付的問(wèn)題逐層拆開。這篇復(fù)盤寫給沒(méi)能到場(chǎng)的朋友也寫給即將在鴻蒙生態(tài)里落地的跨端團(tuán)隊(duì)內(nèi)容偏工程、偏落地每個(gè)環(huán)節(jié)我都會(huì)說(shuō)明當(dāng)時(shí)為什么這么選以及我們踩過(guò)的坑。1. 整體思路拆解為什么第 10 天要重點(diǎn)啃布局和交互1.1 訓(xùn)練營(yíng)后半程的真實(shí)困惑大家卡在選型而不是寫法到第 9 天結(jié)束訓(xùn)練營(yíng)里 20 多個(gè)小組基本都有了可運(yùn)行的頁(yè)面但 80% 的問(wèn)題集中在同一個(gè)點(diǎn)上OpenHarmony 應(yīng)用到底應(yīng)該用 ArkUI 從零寫還是用 React Native 兼容層直接復(fù)用業(yè)務(wù)代碼這個(gè)問(wèn)題不只是新手在問(wèn)連幾個(gè)做工業(yè)屏的團(tuán)隊(duì)也在猶豫。他們的存量代碼是 React Native團(tuán)隊(duì)對(duì) JS/TS 更熟如果全部切到 ArkUI 重寫一兩個(gè)月的排期根本扛不住。Day 10 的核心目標(biāo)就是讓這批人親眼看到“RN 代碼跑在 OpenHarmony 真機(jī)上”不是演示視頻里的特效而是一條有章可循的生產(chǎn)路徑。但選型不是“能不能跑”這么簡(jiǎn)單。訓(xùn)練營(yíng)里我們反復(fù)問(wèn)大家如果明天就要上生產(chǎn)你的應(yīng)用要同時(shí)適配手機(jī)豎屏、平板橫屏和 RK3568 這類帶觸摸的工控屏你現(xiàn)有的布局代碼禁不禁得住交互上遇到弱網(wǎng)、網(wǎng)絡(luò)斷開、用戶狂點(diǎn)按鈕頁(yè)面會(huì)不會(huì)直接變白或卡死坦白講很多同學(xué)之前只考慮過(guò)“功能通不通”沒(méi)考慮過(guò)“狀態(tài)穩(wěn)不穩(wěn)、布局碎不碎”。這也是我們把第 10 天教案設(shè)計(jì)成“多端響應(yīng)式布局 高可用交互設(shè)計(jì)”兩個(gè)重頭戲的原因它們不是錦上添花而是從 Demo 走向真實(shí)設(shè)備時(shí)必須跨過(guò)去的兩道坎。1.2 React Native for OpenHarmony 的架構(gòu)邏輯以及它適合誰(shuí)先給還沒(méi)接觸過(guò) RNOH 的朋友打個(gè)底。React Native for OpenHarmony 本質(zhì)上不是另起爐灶的新框架而是把 React Native 的運(yùn)行時(shí)、渲染邏輯和原生能力接入 OpenHarmony 的適配層。你可以把它理解成“給 JavaScript 大腦裝上一具 OpenHarmony 身體”業(yè)務(wù)代碼仍然是 React 組件、仍然是 Flexbox 布局、仍然走 RN 的狀態(tài)管理和事件體系但在底層視圖層級(jí)要映射成鴻蒙的 ArkUI 組件網(wǎng)絡(luò)、存儲(chǔ)、藍(lán)牙這些能力也要通過(guò)原生模塊橋接過(guò)去。所以它不是一個(gè)黑盒它是 RN 生態(tài)與 OpenHarmony 系統(tǒng)之間的一條雙向通路。理解這一點(diǎn)你就明白為什么我們用 RNOH 做跨端而不是簡(jiǎn)單套個(gè) WebView也不是要求所有人推翻重來(lái)。RNOH 的優(yōu)勢(shì)在于前端和 RN 團(tuán)隊(duì)能保留大量既有代碼社區(qū)里的通用組件邏輯也能直接復(fù)用劣勢(shì)則在于生態(tài)遠(yuǎn)沒(méi)有 Android 和 iOS 那邊成熟很多組件需要自己補(bǔ)原生實(shí)現(xiàn)遇到問(wèn)題時(shí)你能查到的現(xiàn)成資料也少。Day 10 面對(duì)的這批學(xué)員大多數(shù)是“有 RN 基礎(chǔ)、想快速覆蓋鴻蒙設(shè)備”的開發(fā)者RNOH 就是性價(jià)比最高的路徑。反過(guò)來(lái)說(shuō)如果項(xiàng)目零基礎(chǔ)、只做 OpenHarmony 單端那直接學(xué) ArkUI 也很合理沒(méi)必要為了跨端而跨端。1.3 這一天的交付物一個(gè)可復(fù)現(xiàn)的“跨端工作臺(tái) Demo”訓(xùn)練營(yíng)不能停在 PPT 上。Day 10 的實(shí)操目標(biāo)是讓每個(gè)小組把一個(gè)模擬業(yè)務(wù)頁(yè)面“跨端工作臺(tái)”跑通到三臺(tái)設(shè)備上。這個(gè)場(chǎng)景刻意做成偏企業(yè)內(nèi)部工具的樣子頂部是狀態(tài)概覽中間是任務(wù)列表和統(tǒng)計(jì)卡片底部有操作按鈕。頁(yè)面要滿足三個(gè)驗(yàn)收條件第一在手機(jī)豎屏下是單列流式布局底部放導(dǎo)航第二在平板或開發(fā)板寬屏下自動(dòng)切成側(cè)邊欄加內(nèi)容區(qū)卡片能排多列第三所有按鈕在弱網(wǎng)、重復(fù)點(diǎn)擊、接口報(bào)錯(cuò)時(shí)都有明確反饋不能白屏、不能讓用戶以為手機(jī)死了。這個(gè)交付物定得并不炫技但它幾乎覆蓋了生產(chǎn)環(huán)境最常見(jiàn)的需求。窄屏和寬屏之間的布局切換考察的是對(duì)尺寸斷點(diǎn)、柵格和 Flexbox 的掌握交互可靠性則考察狀態(tài)管理、防抖節(jié)流、異常兜底。最后每組都要交一份真機(jī)運(yùn)行的錄屏和一個(gè)自查清單??雌饋?lái)任務(wù)量不大實(shí)際動(dòng)手時(shí)大家才發(fā)現(xiàn)跨端布局的“最后一公里”往往不是代碼邏輯寫不出來(lái)而是各種設(shè)備尺寸、系統(tǒng)字體、導(dǎo)航條避讓和狀態(tài)時(shí)序的細(xì)節(jié)問(wèn)題。這些細(xì)節(jié)正是后面幾節(jié)要展開講的內(nèi)容。2. 工程化基線先搭一個(gè)跑得穩(wěn)的 RNOH 多端工程2.1 初始化工程的推薦路徑與依賴骨架很多同學(xué)第一次跑 RNOH 項(xiàng)目時(shí)是按“Android 工程 Metro”的老思路去猜目錄結(jié)構(gòu)結(jié)果卡在入口加載上。實(shí)際 RNOH 工程至少包含兩層OpenHarmony 側(cè)的 ArkTS 工程負(fù)責(zé)應(yīng)用安裝與生命周期RN 側(cè)的 JS 業(yè)務(wù)代碼打包成 bundle 后由原生側(cè)加載。以 DevEco Studio 創(chuàng)建工程為例你會(huì)得到一個(gè)基于 hvigor 構(gòu)建的 OpenHarmony 應(yīng)用然后在entry模塊里通過(guò) ohpm 引入對(duì)應(yīng) RN 版本的 react-native-harmony 適配包。這里有個(gè)容易搞混的點(diǎn)RN 適配包的版本號(hào)通常要和你的 RN 版本嚴(yán)格對(duì)應(yīng)否則原生橋接層會(huì)跑飛。訓(xùn)練營(yíng)里我們統(tǒng)一鎖了一組經(jīng)過(guò)驗(yàn)證的版本組合避免大家各自試錯(cuò)。構(gòu)建時(shí)建議用 release 模式生成離線 bundle把產(chǎn)物放到 OpenHarmony 側(cè)的 rawfile 目錄下這樣應(yīng)用啟動(dòng)后不依賴 Metro 服務(wù)也能加載。調(diào)試階段可以連 Metro 熱更新但交付演示時(shí)一定要用離線包原因后面第 5 節(jié)講白屏問(wèn)題時(shí)會(huì)提到。整個(gè) RN 代碼工程和 OpenHarmony 宿主工程可以放在同一個(gè)倉(cāng)庫(kù)的不同目錄里用腳本統(tǒng)一構(gòu)建也可以拆成兩個(gè)倉(cāng)庫(kù)CI 里先打 bundle 再打 hap。訓(xùn)練營(yíng)采用前者主要是因?yàn)閷W(xué)員機(jī)器配置參差拆開倉(cāng)庫(kù)容易把環(huán)境問(wèn)題搞復(fù)雜。2.2 開發(fā)工具怎么分工DevEco 與 AI 輔助編程工具各干各的有學(xué)員問(wèn)“Trae 能開發(fā)鴻蒙應(yīng)用嗎”這實(shí)際上是沒(méi)分清“寫鴻蒙原生應(yīng)用”和“開發(fā) RNOH 混合項(xiàng)目”。Trae 這類 AI 輔助工具當(dāng)然可以幫你寫 React Native 組件、業(yè)務(wù)邏輯、狀態(tài)管理代碼因?yàn)樗鼈儽举|(zhì)上是 JS/TS 技術(shù)棧但 OpenHarmony 宿主工程里的 Ability 配置、module.json5、權(quán)限聲明、設(shè)備簽名和 hvigor 構(gòu)建還是離不開 DevEco Studio 的項(xiàng)目上下文。你在 DevEco 里能直接查看系統(tǒng)接口、運(yùn)行 hdc 命令、完成簽名安裝AI 工具目前還很難替代這部分和系統(tǒng) SDK 強(qiáng)綁定的操作。所以在訓(xùn)練營(yíng)里我們的建議是把兩者配合使用復(fù)雜業(yè)務(wù)組件、布局適配、工具函數(shù)交給 AI 輔助工具快速生成再回到 DevEco 里真機(jī)聯(lián)調(diào)。真機(jī)上出現(xiàn)的原生錯(cuò)誤、日志、崩潰棧還是得靠 DevEco 的 Log 面板和 hdc 命令來(lái)定位不能全靠 AI 猜。工具鏈沒(méi)有誰(shuí)取代誰(shuí)的問(wèn)題關(guān)鍵是讓每一環(huán)都待在它最擅長(zhǎng)的位置。2.3 多端差異別撒得到處都是收攏到適配層跨端工程最容易爛的地方就是業(yè)務(wù)代碼里到處寫if (設(shè)備A) ... else if (設(shè)備B) ...。今天加一個(gè)設(shè)備特判明天加一個(gè)平臺(tái)分支半個(gè)月后沒(méi)人敢動(dòng)那段代碼。Day 10 開始前我們專門強(qiáng)調(diào)了一個(gè)工程約束所有設(shè)備差異必須收攏到一個(gè)統(tǒng)一的適配層里業(yè)務(wù)頁(yè)面只能依賴適配層暴露的 hook 或組件不能自己去讀設(shè)備型號(hào)。這個(gè)適配層在代碼上可以做成一個(gè)useDeviceAdaptorHook集中處理四類信息當(dāng)前屏幕寬高與安全區(qū)、當(dāng)前斷點(diǎn)類型compact/medium/expanded、設(shè)備類型手機(jī)/平板/開發(fā)板、操作系統(tǒng)是否啟用了字體縮放。這樣做的價(jià)值會(huì)在你真正接到“適配 RK3568 一塊 1280x800 觸屏”的需求時(shí)體現(xiàn)出來(lái)。因?yàn)闃I(yè)務(wù)代碼不需要知道屏幕到底是多少像素只需要根據(jù)斷點(diǎn)類型去調(diào)整柵格列數(shù)和導(dǎo)航形態(tài)。后續(xù)如果新增一臺(tái)豎屏設(shè)備也只需要適配層去適配不影響幾十個(gè)業(yè)務(wù)頁(yè)面。3. 多端響應(yīng)式布局核心細(xì)節(jié)一套布局如何在三端都不亂3.1 從 dp、vp 到邏輯像素別再按物理像素寫界面了訓(xùn)練營(yíng)里第一個(gè)讓人翻車的知識(shí)點(diǎn)是尺寸單位。許多從 Web 轉(zhuǎn)過(guò)來(lái)的同學(xué)習(xí)慣了 px 思維在 RN 代碼里直接寫width: 300主觀上覺(jué)得“反正 RN 會(huì)適配”。實(shí)際上 RN 的寬度數(shù)字會(huì)映射到 OpenHarmony 的 vpvirtual pixel體系而 vp 在真機(jī)上會(huì)根據(jù)屏幕密度做縮放。你在設(shè)計(jì)稿里量出來(lái)的是物理像素直接填進(jìn)代碼往往會(huì)發(fā)現(xiàn)開發(fā)板上字特別小、手機(jī)上按鈕看不全原因是開發(fā)板的密度和手機(jī)密度差異很大。正確的做法是徹底放棄物理像素直覺(jué)堅(jiān)持使用邏輯像素、Flexbox、百分比和間距常量。訓(xùn)練營(yíng)里我們強(qiáng)制大家把設(shè)計(jì)稿里的尺寸除以密度系數(shù)再落到代碼里同時(shí)把 4、8、12、16、24 這類間距做成常量避免到處出現(xiàn)“看起來(lái)差不多”的魔數(shù)。這里順便補(bǔ)一句如果需要把邏輯像素轉(zhuǎn)回物理像素做判斷可以用PixelRatio.get()但頻繁使用說(shuō)明布局思路可能有問(wèn)題應(yīng)該回到結(jié)構(gòu)層去解決。3.2 斷點(diǎn)體系與柵格策略別讓 600px 和 800px 成為硬編碼多端響應(yīng)式布局不是“檢測(cè)到橫屏就切換樣式”而是要建立一套斷點(diǎn)體系。我們參考 Material Design 的斷點(diǎn)思路結(jié)合訓(xùn)練營(yíng)設(shè)備情況把屏幕寬度劃成三檔小于 600 邏輯像素是 compact手機(jī)/窄屏600 到 840 是 medium小平板或折疊屏展開態(tài)大于 840 是 expanded平板橫屏、開發(fā)板寬屏。為了讓斷點(diǎn)判斷可復(fù)用我寫了一個(gè)useBreakpointHook內(nèi)部監(jiān)聽useWindowDimensions()并且把系統(tǒng)字體縮放因子考慮進(jìn)去。為什么要除字體縮放因?yàn)橛脩舭严到y(tǒng)字體調(diào)大后同樣的邏輯像素寬度能顯示的內(nèi)容會(huì)變少布局應(yīng)該自動(dòng)降級(jí)而不是把文案擠到換行。柵格策略同樣基于斷點(diǎn)。compact 態(tài)下內(nèi)容區(qū)是單列卡片之間用縱向間距操作按鈕常駐底部medium 態(tài)可以排兩列expanded 態(tài)則可以排到四列同時(shí)把低頻信息放到側(cè)欄。這里有一個(gè)經(jīng)驗(yàn)斷點(diǎn)判斷只作為“布局框架”的依據(jù)不要試圖用它精確控制每一個(gè)卡片的像素。Flexbox 負(fù)責(zé)彈性填充斷點(diǎn)只決定列數(shù)和導(dǎo)航形態(tài)兩者結(jié)合才不會(huì)出現(xiàn)拉伸變形。export type Breakpoint compact | medium | expanded; export function useBreakpoint(): Breakpoint { const { width } useWindowDimensions(); const fontScale PixelRatio.getFontScale(); const effectiveWidth width / fontScale; if (effectiveWidth 600) return compact; if (effectiveWidth 840) return medium; return expanded; }3.3 窄屏切頁(yè)簽、寬屏切側(cè)欄一個(gè)能直接套用的響應(yīng)式組合這次訓(xùn)練營(yíng)的實(shí)戰(zhàn)案例是一個(gè)“跨端工作臺(tái)”。我沒(méi)讓學(xué)員一上來(lái)就寫復(fù)雜動(dòng)效而是先把頁(yè)面骨架做到符合業(yè)務(wù)直覺(jué)窄屏下如果強(qiáng)行放側(cè)欄可用內(nèi)容區(qū)只有 300 多邏輯像素寬操作起來(lái)非常局促寬屏下如果全部做成單列滾動(dòng)信息密度又太低。正確的方案是讓同一個(gè)頁(yè)面根據(jù)斷點(diǎn)渲染成兩種形態(tài)。export default function WorkbenchScreen() { const bp useBreakpoint(); if (bp compact) { return CompactWorkbench /; } return ExpandedWorkbench /; }在ExpandedWorkbench里外層一行用 Flexbox左側(cè)是 Sidebar右側(cè)是內(nèi)容區(qū)。內(nèi)容區(qū)里的統(tǒng)計(jì)卡片寬度通過(guò)flexBasis按列數(shù)分配比如四列就設(shè)置flexBasis: 25%每張卡片再留 8 到 12 的邏輯像素間距。這樣在 1280x800 的開發(fā)板橫屏上卡片不會(huì)因?yàn)槊芏葐?wèn)題擠成一團(tuán)當(dāng)系統(tǒng)字體調(diào)大導(dǎo)致有效寬度降到 840 以下時(shí)斷點(diǎn)會(huì)降級(jí)成 medium列數(shù)自動(dòng)減到兩列。這套組合在代碼上不復(fù)雜真正的難點(diǎn)是找到一個(gè)通用的“布局切換時(shí)機(jī)”。我們用useWindowDimensions()而不是啟動(dòng)時(shí)讀一次寬高就是為了讓旋轉(zhuǎn)屏幕、分屏、窗口大小變化時(shí)能即時(shí)重新渲染。RNOH 上這個(gè) Hook 是可靠的但要注意不要把它放在每個(gè)小組件里都調(diào)用否則一旋轉(zhuǎn)會(huì)導(dǎo)致大量組件重渲染。更好的做法是只在頁(yè)面容器層調(diào)用通過(guò) props 或 context 把斷點(diǎn)類型傳給子組件。3.4 安全區(qū)、劉海與底部導(dǎo)航條不處理就會(huì)被系統(tǒng)吃掉一塊手機(jī)有挖孔屏和底部導(dǎo)航條平板和 RK3568 開發(fā)板也有各自的系統(tǒng)避讓區(qū)域。很多同學(xué)寫布局時(shí)沒(méi)有考慮安全區(qū)結(jié)果頁(yè)面底部按鈕被系統(tǒng)導(dǎo)航條擋住一半點(diǎn)擊區(qū)域完全失效。RN 標(biāo)準(zhǔn)庫(kù)里的 SafeAreaView 在部分 OpenHarmony 設(shè)備上表現(xiàn)并不一致所以我們選擇在適配層自己算安全區(qū)再注入給業(yè)務(wù)組件。實(shí)現(xiàn)思路比較簡(jiǎn)單OpenHarmony 原生側(cè)拿到窗口的避讓區(qū)域avoidArea通過(guò)一個(gè)原生模塊把上、下、左、右的避讓值傳給 RN 側(cè)RN 側(cè)用 Provider 保存這些值業(yè)務(wù)組件再根據(jù)斷點(diǎn)應(yīng)用到外層 padding。這樣既不會(huì)一刀切地把所有設(shè)備都套用 iPhone 那套安全區(qū)值又能覆蓋帶物理導(dǎo)航鍵的開發(fā)板。實(shí)際測(cè)試中RK3568 這塊板子如果跑的是帶虛擬導(dǎo)航條的鏡像底部避讓值甚至可能是 0但觸摸區(qū)域距離邊緣很近手指操作時(shí)容易誤觸返回手勢(shì)。這種場(chǎng)景不能只依賴安全區(qū)還需要在交互設(shè)計(jì)上給底部操作留出足夠的外邊距。3.5 圖標(biāo)與字體官方庫(kù)再豐富也要注意渲染路徑訓(xùn)練營(yíng)里有人問(wèn)“OpenHarmony 官方是不是推出了 lucide 風(fēng)格的圖標(biāo)庫(kù)”確實(shí)看到過(guò)相關(guān)討論也有人在 ArkUI 原生工程里接入 Lucide 圖標(biāo)。但在 RNOH 場(chǎng)景下圖標(biāo)方案不能簡(jiǎn)單照搬。RN 這邊的react-native-vector-icons依賴的是字體文件注冊(cè)RNOH 對(duì)字體的加載方式還不完全等同 Android訓(xùn)練營(yíng)里出現(xiàn)過(guò)圖標(biāo)顯示成方塊的案例。遇到這種情況先別急著懷疑圖標(biāo)庫(kù)本身用 hdc 拉日志看字體是否 mount 成功。更穩(wěn)妥的做法是把圖標(biāo)問(wèn)題放到原生層去解決通過(guò)自定義原生組件暴露一個(gè)圖標(biāo)組件給 RN 側(cè)使用。ArkUI 的SymbolGlyph或Image加載 SVG 都比較成熟原生側(cè)按圖標(biāo)名渲染RN 側(cè)只傳名稱和尺寸。這樣既能享受新圖標(biāo)庫(kù)的設(shè)計(jì)風(fēng)格又避開了“RN 字體映射不完整”的坑。字體大小同樣要注意開啟系統(tǒng)字體縮放適配否則用戶調(diào)大系統(tǒng)字號(hào)后固定字號(hào)標(biāo)題會(huì)和卡片布局打架。4. 高可用交互設(shè)計(jì)用戶點(diǎn)下去那一下絕不能出事4.1 點(diǎn)得中、錯(cuò)不了觸摸熱區(qū)與點(diǎn)擊反饋高可用交互第一條也是最容易被視覺(jué)稿忽略的一條用戶能不能準(zhǔn)確點(diǎn)中目標(biāo)。開發(fā)板上手掌誤觸概率比手機(jī)高得多按鈕如果只按視覺(jué)尺寸做實(shí)際熱區(qū)會(huì)非常小。RN 里最簡(jiǎn)單的解法是用hitSlop擴(kuò)大觸摸熱區(qū)。比如一個(gè)刪除圖標(biāo)看起來(lái)只有 24x24可以給它上下左右各加 10 個(gè)邏輯像素的隱形熱區(qū)同時(shí)在按下時(shí)給背景色或透明度反饋。我們要求所有可點(diǎn)擊元素的視覺(jué)面積不小于 44x44如果設(shè)計(jì)上做不到就用hitSlop和透明內(nèi)邊距補(bǔ)足。點(diǎn)擊反饋也不能只是“好看”。在工控屏場(chǎng)景里用戶按下后如果沒(méi)有任何狀態(tài)變化會(huì)下意識(shí)再點(diǎn)一次反而容易造成重復(fù)操作。訓(xùn)練營(yíng)要求每個(gè)按鈕都必須有 pressed 狀態(tài)下的視覺(jué)變化不論是顏色加深還是縮放動(dòng)畫必須讓用戶感知到“系統(tǒng)已經(jīng)接收到這次點(diǎn)擊”。這一點(diǎn)對(duì) RNOH 同樣成立Pressable組件的style回調(diào)里可以根據(jù)pressed屬性動(dòng)態(tài)切換樣式實(shí)現(xiàn)成本很低。4.2 加載、空、錯(cuò)三態(tài)封裝把頁(yè)面從“白屏恐懼”里救出來(lái)很多頁(yè)面在真實(shí)環(huán)境中失敗不是因?yàn)楣δ軟](méi)實(shí)現(xiàn)而是因?yàn)闆](méi)有異常態(tài)。請(qǐng)求發(fā)出去后轉(zhuǎn)圈 2 秒接口報(bào)錯(cuò)后頁(yè)面直接空白用戶就會(huì)以為應(yīng)用壞了。訓(xùn)練營(yíng)里我們強(qiáng)制大家給所有異步頁(yè)面統(tǒng)一封裝一個(gè)RequestView組件把頁(yè)面狀態(tài)分成四類loading、error、empty、content。組件接收狀態(tài)和回調(diào)loading 時(shí)顯示骨架屏或加載指示器error 時(shí)顯示錯(cuò)誤信息和重試按鈕empty 時(shí)給引導(dǎo)文案content 時(shí)才渲染真正的業(yè)務(wù)內(nèi)容。type RequestViewProps { status: loading | error | empty | content; errorText?: string; onRetry?: () void; children?: React.ReactNode; }; export function RequestView({ status, errorText, onRetry, children }: RequestViewProps) { if (status loading) { return LoadingIndicator /; } if (status error) { return ( View style{styles.centerBox} Text style{styles.message}{errorText || 加載失敗請(qǐng)檢查網(wǎng)絡(luò)后重試}/Text {onRetry ? ( Pressable style{styles.retryBtn} onPress{onRetry} Text style{styles.retryText}重新加載/Text /Pressable ) : null} /View ); } if (status empty) { return EmptyView /; } return {children}/; }這套封裝的直接收益是“啟動(dòng)白屏”問(wèn)題至少能在應(yīng)用層被攔住。RNOH 應(yīng)用啟動(dòng)需要加載 JS bundle這個(gè)過(guò)程如果什么界面都沒(méi)有用戶看到的就是一塊白屏。我們訓(xùn)練營(yíng)里要求啟動(dòng)階段用原生側(cè)的能力先展示應(yīng)用閃屏或骨架等 RN 實(shí)例 ready 后再切到業(yè)務(wù)頁(yè)面。這個(gè)白屏問(wèn)題的排查細(xì)節(jié)我會(huì)在第 5.1 節(jié)展開講但交互設(shè)計(jì)上先把加載態(tài)做出來(lái)至少不會(huì)讓用戶在關(guān)鍵時(shí)刻面對(duì)一片空白。4.3 防重復(fù)點(diǎn)擊與操作冪等后端只能幫你兜底前端必須主動(dòng)擋業(yè)務(wù)頁(yè)面里最常見(jiàn)的事故是用戶連續(xù)點(diǎn)擊“提交”按鈕產(chǎn)生了兩條重復(fù)訂單或兩條重復(fù)數(shù)據(jù)。RN 的TouchableOpacity在onPress回調(diào)執(zhí)行完后并不會(huì)自動(dòng)禁用按鈕網(wǎng)絡(luò)慢的時(shí)候用戶很容易再點(diǎn)幾下。我們的標(biāo)準(zhǔn)做法是兩層防護(hù)第一層在按鈕組件里內(nèi)置isSubmitting狀態(tài)點(diǎn)擊后立刻把按鈕置為 disabled并把文案改成“提交中/處理中”第二層用一個(gè)useThrottledPressHook對(duì)高頻回調(diào)做節(jié)流。function useThrottledPress(handler: () void, ms 2000) { const lastTime useRef(0); return useCallback(() { const now Date.now(); if (now - lastTime.current ms) return; lastTime.current now; handler(); }, [handler, ms]); }需要注意的是第二層只是兜底不能替代后端冪等校驗(yàn)。因?yàn)榍岸嗽僭趺捶酪卜啦蛔【W(wǎng)絡(luò)請(qǐng)求超時(shí)后用戶刷新頁(yè)面再次提交。訓(xùn)練營(yíng)里我們讓學(xué)員用偽隨機(jī)字符串生成一個(gè)請(qǐng)求冪等鍵提交時(shí)帶上后端如果收到同樣冪等鍵就忽略重復(fù)請(qǐng)求這才是真正的“高可用”。前端防抖防止的是誤操作后端冪等解決的是網(wǎng)絡(luò)不確定性兩者缺一不可。4.4 弱網(wǎng)與設(shè)備離線的交互處理OpenHarmony 設(shè)備經(jīng)常跑在局域網(wǎng)環(huán)境尤其是 RK3568 這類開發(fā)板連接的可能是攝像頭、掃碼槍或工業(yè)設(shè)備。網(wǎng)絡(luò)抖動(dòng)、設(shè)備掉線、IP 地址變更都很常見(jiàn)。如果你只做一次 fetch失敗后彈個(gè)“網(wǎng)絡(luò)錯(cuò)誤”就結(jié)束用戶根本沒(méi)有恢復(fù)路徑。Day 10 的交互設(shè)計(jì)規(guī)范里我們把網(wǎng)絡(luò)異常分成三類處理超時(shí)類、連接失敗類、業(yè)務(wù)錯(cuò)誤類。超時(shí)和連接失敗時(shí)除了展示錯(cuò)誤態(tài)還要給“自動(dòng)重試倒計(jì)時(shí)”或“手動(dòng)重試按鈕”業(yè)務(wù)錯(cuò)誤則展示服務(wù)端返回的具體文案比如設(shè)備離線原因和處置建議。同時(shí)接口請(qǐng)求要支持取消。頁(yè)面已經(jīng)卸載時(shí)還在 setState 會(huì)導(dǎo)致警告嚴(yán)重時(shí)會(huì)引起原生側(cè)崩潰。我們用AbortController配合組件卸載標(biāo)記來(lái)取消已發(fā)請(qǐng)求具體寫法不復(fù)雜但必須養(yǎng)成習(xí)慣。RNOH 的 JS 引擎對(duì)AbortController的支持是足夠的真正容易出問(wèn)題的是原生側(cè)網(wǎng)絡(luò)模塊和 JS 層之間的事件監(jiān)聽沒(méi)有正確釋放所以自定義原生事件監(jiān)聽一定要在組件卸載時(shí)調(diào)用 remove避免內(nèi)存泄漏。4.5 無(wú)障礙與動(dòng)效高可用不只是“能用”還要“能感知”交互做完之后還要過(guò)一遍無(wú)障礙和動(dòng)效細(xì)節(jié)。開發(fā)板場(chǎng)景里可能接的是無(wú)障礙開關(guān)屏幕閱讀器需要能讀出按鈕含義普通用戶則需要通過(guò)動(dòng)效感知界面變化。RNOH 對(duì)accessibilityLabel的支持和 RN 基本一致訓(xùn)練營(yíng)要求每個(gè)圖標(biāo)按鈕、圖片按鈕必須設(shè)置語(yǔ)義化標(biāo)簽不能只放一個(gè)圖標(biāo)靠顏色區(qū)分。點(diǎn)擊動(dòng)效應(yīng)簡(jiǎn)短有力一般控制在 150 到 250 毫秒不要做需要等待超過(guò) 1 秒才能反饋的“炫技動(dòng)畫”在硬件配置一般的開發(fā)板上復(fù)雜動(dòng)效是掉幀重災(zāi)區(qū)。訓(xùn)練營(yíng)里也有學(xué)員查“React Native 如何實(shí)現(xiàn)循環(huán)滾輪”想做一個(gè)滾動(dòng)選擇器。RN 社區(qū)方案多數(shù)依賴原生滾輪實(shí)現(xiàn)在 RNOH 上直接移植不一定能跑。我們的建議是如果場(chǎng)景需要循環(huán)滾輪這類自定義交互組件優(yōu)先在 ArkUI 原生側(cè)實(shí)現(xiàn)一個(gè) Native Component再暴露給 RN而不是試圖用 ScrollView 強(qiáng)行模擬。動(dòng)效和手勢(shì)這一類對(duì)原生能力依賴較高的交互RNOH 的原則是“組件級(jí)復(fù)用原生側(cè)補(bǔ)強(qiáng)”硬用純 JS 方案去拼性能和手感都很難保證。5. 真機(jī)聯(lián)調(diào)實(shí)錄白屏、開發(fā)板設(shè)備樹與其他繞不開的坑5.1 啟動(dòng)白屏的排查流程按順序查別瞎試訓(xùn)練營(yíng)當(dāng)天的熱詞里出現(xiàn)“react native 啟動(dòng)白屏”實(shí)際項(xiàng)目里這也是攔路虎。處理這個(gè)問(wèn)題我給的排查順序非常固定。第一步先確認(rèn)應(yīng)用有沒(méi)有閃屏或啟動(dòng)圖如果連原生啟動(dòng)圖都沒(méi)有用戶看到白屏是必然的先補(bǔ)原生側(cè)啟動(dòng)界面再說(shuō)第二步檢查 RN bundle 是否成功生成并且放在了 rawfile 目錄下第三步查看應(yīng)用日志確認(rèn) RN instance 有沒(méi)有初始化完成第四步如果邏輯層已經(jīng)啟動(dòng)但界面是白的再看是不是頁(yè)面容器沒(méi)有正確掛載。這里有一個(gè)非常隱蔽的坑如果你構(gòu)建的是 debug 包RNOH 默認(rèn)會(huì)嘗試連接 Metro 開發(fā)服務(wù)器真機(jī)上如果連不上服務(wù)器它會(huì)等待超時(shí)后才嘗試加載本地 bundle這個(gè)過(guò)程在外界看起來(lái)就是長(zhǎng)時(shí)間白屏。訓(xùn)練營(yíng)里一個(gè)小組在 RK3568 上演示時(shí)遇到了這個(gè)情況現(xiàn)場(chǎng)看起來(lái)像“應(yīng)用崩了”其實(shí)日志里一直在打印連不上 Metro。解決辦法很簡(jiǎn)單演示環(huán)境一律構(gòu)建 release 離線包或者在原生配置里把加載模式設(shè)為 loadBundleFromRawFile不依賴 Metro。排查時(shí)按這個(gè)順序走能省掉大量無(wú)效操作。白屏階段優(yōu)先排查常見(jiàn)根因啟動(dòng)后無(wú)任何畫面原生啟動(dòng)圖與閃屏配置原生側(cè)缺失啟動(dòng)界面RN 實(shí)例未初始化hdc 日志、bundle 路徑離線包未生成或路徑錯(cuò)誤JS 層已執(zhí)行但無(wú) UI頁(yè)面容器掛載、組件渲染首屏組件異常、容器尺寸為 0長(zhǎng)時(shí)間白屏后恢復(fù)Metro 連接超時(shí)配置debug 包連不上開發(fā)服務(wù)器真機(jī)偶發(fā)白屏內(nèi)存占用、GPU 資源大圖、復(fù)雜嵌套導(dǎo)致資源不足5.2 RK3568 開發(fā)板鏡像與設(shè)備樹選擇別被“一堆 dts”嚇住很多人看到“openHarmony 的 rk3568 有許多設(shè)備樹到底咋選”這個(gè)問(wèn)題第一反應(yīng)是去翻內(nèi)核配置擔(dān)心選錯(cuò)設(shè)備樹后系統(tǒng)起不來(lái)。訓(xùn)練營(yíng)里我們用的是官方適配過(guò)的 RK3568 板卡原則上只要燒錄對(duì)應(yīng)的系統(tǒng)鏡像不需要手工選擇設(shè)備樹內(nèi)核在啟動(dòng)時(shí)會(huì)根據(jù)硬件檢測(cè)加載匹配的 dtb。真正需要你手動(dòng)處理設(shè)備樹的情況是板卡型號(hào)特殊、內(nèi)存顆粒不同、屏幕觸摸芯片不同或者你在自行編譯內(nèi)核這時(shí)才需要確認(rèn)設(shè)備樹與硬件匹配。如果你確實(shí)需要查看當(dāng)前系統(tǒng)加載的是哪個(gè)設(shè)備樹可以通過(guò)cat /proc/device-tree/model查看硬件型號(hào)字符串或者通過(guò)/sys/firmware/devicetree/下的目錄信息判斷。編譯內(nèi)核時(shí)dts 文件一般放在內(nèi)核源碼的arch/arm64/boot/dts/rockchip/目錄下有對(duì)應(yīng)板卡的 dts 文件比如官方 EVB 板、第三方核心板都會(huì)各有各的文件標(biāo)識(shí)。訓(xùn)練營(yíng)給的建議很實(shí)在學(xué)習(xí)階段不要為了“優(yōu)化性能”去亂動(dòng)設(shè)備樹先用官方統(tǒng)一鏡像跑通應(yīng)用等需要定制屏幕或外設(shè)時(shí)再拿著板卡型號(hào)和屏參去設(shè)備樹里做增量配置。RK3588 或其他型號(hào)的板子邏輯也一樣核心是先確認(rèn)硬件 model再找對(duì)應(yīng) dts而不是網(wǎng)上隨便下載一個(gè)。5.3 USB 與硬件外設(shè)調(diào)試從 libusb 到事件驅(qū)動(dòng)的封裝思路做工業(yè)屏的小組總會(huì)遇到 USB 外設(shè)讀取問(wèn)題。有同學(xué)直接在 RN 側(cè)調(diào)用 USBManager 和 libusb 的封裝結(jié)果發(fā)現(xiàn)設(shè)備插拔事件能監(jiān)聽到但異步讀取數(shù)據(jù)時(shí)經(jīng)常拿不到結(jié)果。這個(gè)問(wèn)題并不奇怪USB 數(shù)據(jù)讀取本身是持續(xù)數(shù)據(jù)流RN 側(cè)的 Promise 模型更適合“請(qǐng)求—響應(yīng)”式交互不適合處理“設(shè)備隨時(shí)上報(bào)”的流式事件。我們的建議是在 ArkUI 原生層寫一個(gè)獨(dú)立的 USB 服務(wù)負(fù)責(zé)設(shè)備枚舉、權(quán)限申請(qǐng)、數(shù)據(jù)讀取和錯(cuò)誤處理把數(shù)據(jù)通過(guò)事件通道持續(xù)推送給 RN 側(cè)RN 側(cè)只負(fù)責(zé)訂閱事件和展示狀態(tài)。這個(gè)思路和藍(lán)牙、串口外設(shè)的接入方式是一致的原生層做能力JS 層做狀態(tài)。訓(xùn)練營(yíng)現(xiàn)場(chǎng)還遇到過(guò)一個(gè)硬件級(jí)的坑開發(fā)板 USB 調(diào)試口數(shù)據(jù)線接觸不良hdc 一直無(wú)法連接設(shè)備。很多同學(xué)以為是系統(tǒng)鏡像的問(wèn)題折騰半天才發(fā)現(xiàn)是 USB 線只支持充電不支持?jǐn)?shù)據(jù)傳輸。排查這類問(wèn)題時(shí)先用hdc list targets看看設(shè)備在不在列表里如果不在換線、換接口、檢查驅(qū)動(dòng)三步走。開發(fā)板用 5V 供電不穩(wěn)時(shí)USB 外設(shè)也可能反復(fù)掉線最好用獨(dú)立供電的 USB Hub 給外設(shè)供電別把大功率設(shè)備直接插在開發(fā)板 USB 口上。5.4 Day 10 驗(yàn)收清單能過(guò)這份清單再談上線課程收尾時(shí)我們給了大家一份可以帶回團(tuán)隊(duì)用的驗(yàn)收清單這份清單不針對(duì)業(yè)務(wù)邏輯只針對(duì)“多端可用性”。第一同一個(gè) RN bundle 必須能在手機(jī)、平板和開發(fā)板真機(jī)上啟動(dòng)且啟動(dòng)階段不能出現(xiàn)超過(guò) 2 秒的白屏第二頁(yè)面寬度壓縮到 320 邏輯像素時(shí)不能出現(xiàn)橫向滾動(dòng)寬屏展開時(shí)按鈕高度不能小于 44第三所有異步頁(yè)面必須有加載中、空數(shù)據(jù)、錯(cuò)誤重試三種狀態(tài)第四連續(xù)點(diǎn)擊任何提交按鈕不會(huì)產(chǎn)生重復(fù)請(qǐng)求第五斷網(wǎng)或設(shè)備離線時(shí)頁(yè)面要給出可理解的提示并提供恢復(fù)路徑第六打開無(wú)障礙后關(guān)鍵按鈕能被屏幕閱讀器識(shí)別。這份清單聽起來(lái)簡(jiǎn)單但學(xué)員完成度并不高。Day 10 最后 40 分鐘我們只做一件事小組之間互相用這份清單“找茬”。結(jié)果很多組都在第一項(xiàng)就翻車不是手機(jī)白屏就是開發(fā)板顯示異常。問(wèn)題集中暴露是好事因?yàn)橛?xùn)練營(yíng)的目的不是讓大家看老師演示而是讓大家踩過(guò)、改過(guò)、記住。如果看完本文你也準(zhǔn)備在項(xiàng)目里落地 RNOH我建議你把這 6 條直接寫進(jìn)迭代 Definition of Done逐條過(guò)一遍比發(fā)布會(huì)前臨時(shí)救火要省心得多。訓(xùn)練營(yíng)這一天下來(lái)讓我最深的感觸是“跨端”不是把同樣的界面搬到不同屏幕上而是同一個(gè)功能在不同設(shè)備上都能被順暢地完成。React Native for OpenHarmony 的價(jià)值也正在于此它讓團(tuán)隊(duì)可以復(fù)用腦子里的業(yè)務(wù)邏輯但布局策略和交互細(xì)節(jié)必須重新敬畏每臺(tái)設(shè)備的真實(shí)約束。給學(xué)員重復(fù)最多的一句話還是那個(gè)樸素的道理用戶不在乎你底層用的是 ArkUI 還是 RNOH他只在乎點(diǎn)下去有沒(méi)有反應(yīng)、斷網(wǎng)了有沒(méi)有提示、換了一塊屏幕后界面還順不順手。把這幾件事做成默認(rèn)能力你的鴻蒙應(yīng)用才算真正具備進(jìn)入生產(chǎn)的底氣。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷趴趴| 噜噜色五月| 九九热视| 亚洲视频丁香网va| 五月丁香六月婷婷成人| 久热精品免费视频4| 婷婷五月花丁香| 色综合久久88色综合天天99| 人人综合色| 丁香五月首页| 六九色综合婷婷五月天| Va另类视频| 金品在线视频99| 久久综合婷婷| 99色色网| 五月色丁香| 欧美精品999| 人人人va亚洲视频在线| 狠狠操天天操| 久久免费干| 国产成人+综合亚洲+天堂| 狠狠夜夜五月丁香| 永久无码色| 久久婷婷五月综合网| 色欲色香综合网| 丁香五月婷婷成人网| 国产av基地| 97色五月婷婷在线| 免费看欧美成人A片无码| 色天堂在线| 久久96热| 婷婷开心激情综合五月天| 亚洲天天操| 亚洲综合丁香五月天| 99激情在线| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 99热免费网站| 日日日,com| 丁香五月综合首页| 久久99精品久久久久久噜噜| 182TV亚洲| 啪啪日本欧美| 九九色婷婷Av| 亚洲区1| 亚洲成人在线播放| 日韩精品AV一区二区三区| 人人综合久| 操婷婷基地| 久色五月| 婷婷五月激情在线视频| 99re思思久久| www.婷婷,com| 大香蕉婷婷| 激情五月婷| 五月天婷婷婷| 久热99热| 日本五月婷婷| 无码AV免费精品一区二区三区| 亚洲综合婷婷| 色综合天天| 综合久久婷婷| 亚洲经典三级| 丁香狠狠色婷婷久久无码视频| 少妇做爰免费视看片| 婷婷丁香18| 色狠狠999综合网| 五月婷婷黄色| 丁香五月AV在线| 日韩 欧美 国产 一区 二区| 日本va视频| 99色色最新视频| 思思久久96热在精品国产,| 五月停停直播| 五月婷婷之美女图片| 久久婷婷操| 激情五月天无码| 亚州欧美国产久精国产99综合视频| www.zbzhongsen.com| 激情另类综合| 色香五月天| 久久久人妻门| 97久久久久| 久久婷婷热| 激情五月天之六月婷婷| 久久性爱视频这里只有精品| 97干婷婷| 性做久久久久久久免费看| 激情四射五月天| 亚洲色综合| 国产看真人毛片爱做A片| 日日夜夜干| 丰满老熟妇BBBBB搡BBB| 色婷久| 久久性刺激| 日韩啪啪视频| 五月婷婷丁香综合| 九九Av| 97av在线视频| 丁香五月天久久| 青青色com久久| 婷婷色色欧美| 激情婷婷在线| 亚洲五月天,激情视频| sS丁香五月婷婷| www.热99热| 亚洲精品婷婷| 日日杆天天| 亚洲精品V天堂中文字幕| 亚洲成人综合网在线免费观看| 国内久久亭亭| 综合五月激情| 天天干天天拍| 无码人妻激情| 九九热99热| 五月婷色| www.99精品在线| 性爱AV天堂| 五月色精品| 亚洲综合另类| 激情六月天婷婷| 狠狠爱综合网| 日本乱论99| 天天艹天天综合网| 日韩综合久| 激情五月天婷婷| 色婷婷成人久久| 五月婷久久| 国产片色| 国产婷婷色综合AV蜜臀AV | 丁香五月婷婷亚洲天堂| 色婷丨日丨天丨综合久久| www夜夜| 国产FREESEXVIDEOS性中国| 婷婷WWW久久| 大胆伊人久久| 99re这里只有精品视频了| 久热这里只有| 色综合久| 涩涩五月天综合| 五月天六月色| 天天网曰日曰夜夜综合永久免费| 小视频一区| 丁香九月婷婷综合| 99碰网站| 婷婷五月天情色| 91在线观看九区| www.夜夜操.con| 天天搡日日搡aaaaⅩ| 婷婷香蕉香| 亚洲精99| 国精产品一区一区三区免费视频| 激情丁香淫荡婷婷| 五月天婷婷激情| 在线色色| 色五月婷婷久久| 丁香色五月 97干| 色www.con| 婷婷网五月| 色九月婷婷| 99在线观看视频免费| 超碰在线人人| 色久婷婷五月| 91九色最新视频| 婷婷九月激情| 丁香六月婷婷基地| 91成人性爱视频| 九九色插| 婷婷五月丁香六月| 欧美狠狠草| 国产亚洲在线观看| 婷婷五月天色综合翘| www.五月天| 9久视频| 丁香婷婷五月综合色情| 久草婷婷网| 久久五月丁香激情综合| 超碰人人妻| 激情五月色综合| 久久99最新地址| 91九色首页| 色99视频| 日日鲁鲁夜夜爽爽| 亚洲视频久久| 五月激情啪啪| 在线综合婷婷| 国产在线视频1234| 久久九九热视频| 伊人91| 伊人色综合网| 五月丁香在线婷婷美女| 亚洲视频五区| 91男人操女人视频| 91日本在线| 国产麻豆视频| 99免费在线| 一起操 91N.com| 第四色五月婷婷| 91九色国产| 色婷婷激情| 欧美极品999| 六月婷婷色综合| 人人干AV| 色999五月色| 另类少妇人与禽zOZZ0性伦| www,婷婷五月天777me,com| 九九99精品免费播放| 激情五月婷婷丁香| 婷婷五六日| 中文字幕高清av| 丁香婷婷网| 色宗合,宗合网| 91日综合欧美| http://www.sd-xiangsu.com/| 九九综合九色欧美狠狠| 丁香五月激情啪啪| 另类小说激情五月天| 五月婷婷色综图片| 婷婷香蕉视频| 思思久久99热只有频精品66| 内射综合网| 天天噪夜夜爽| 狠狠干婷婷| 婷婷丁香红五月91C| 99精彩视频| 99er日韩| 婷婷丁香五另类网站| 免费无码毛片一区二区A片| 天天激情欧美美女| 国产精品久久久60086| 成人丁香色| 免费色婷婷| 粉嫩AV久久一区二区三区| 亚洲AV成人在线观看| 五月婷婷AV| 6080av| 欧美97色| 七月激情六月婷婷综合在线播放| 狠狠操狠狠色| 色情五月婷| 亚洲国产精品成人va在线观看| 五月激情综合网| co超碰在线观看| 狠狠干在线| 婷婷丁香激情五月| 伊人青草成人| 天天操夜夜爽天天操| 激情网色五月| 激情婷| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 丁香五月婷婷国产在线| 人妻体体内射精一区二区| 人人爱人人草| 来吧亚洲综合网| 天天天天天天天操| 天天天摸夜夜夜玩| 天天夜夜爽| 亚洲 无码 中文字幕 中出| 久久婷婷综合网| 久9精品| 大香人妻| 91蝌蚪窝视频在线| 九九碰九九爱97| 欧美狠狠色| 天天操夜夜爱| 五月丁香婷爱在线| 亚洲va在线∨a天堂va欧美va| 9999色色色色| 亚洲色综合性| 婷婷夜夜操| 五月丁香在线婷婷美女| 香蕉AV777XXX色综合一区| 人妻久久久久久久久| 日本天天综合| 玖玖福利视频资源| 中文国产五月天| 开心五月色婷| 综合激情视频| 色五月欧美| 99免费视频| 殴美综合激情五月天免费视频| 丁香桃色网| 久久激情五月婷婷| 丁香婷婷基地| 色三级色三级| 激情av| 国产肥白大熟妇BBBB视频| 九月色婷婷| 亚洲色久| 99在线爽| 婷婷色色五月天| 色欲婷婷夜夜| 久久视频在线| 九热视频| 性爱激情久久| 色婷婷色99国产综合精品| 九九碰九九爱97| 久久这有这里精品| 婷婷射丁香| 99这里只有精品视频| 99九九热视频| 色伦专区97中文字幕| 1024操逼| 日本欧特黄色刺激一区影视久精品无码| 久99999热视频在线观看免费| 五月婷婷综合在线亚洲视频| 国产激情在线| 人妻videos人妻高清| 五月天 另类图片| 五月天激情小说| 思思热这里只有精品| 国产婷婷色综合AV蜜臀AV | 在线综合亚洲欧美65| 1024成人在线观看| 久久久99精品| 五月丁香五月婷婷| 五月天婷婷久久| 丁香六月婷婷久久综合| 超碰中文字幕在线| 婷婷黄色五月天在线视频| 俺也去在线视频| 激情综合色网| 任你干嘛免费视频播放| 成人久久天天x资源站| 人人爱人人摸人人澡| 操碰91| 久久婷婷超碰| 性爱在线播放av| 99热这里只有精品1| 天天爽人人综合免费7799| www91色网站| 另类图片天天影视在线观看| 26uuu亚洲精品国产| 俺去也五月天婷婷| 九九热10| 婷婷五月免费视频| 天天日日| 色久免费| 国产精产国品一二三在观看| 综合亚洲六月婷婷在线| 久草a片| 综合欧美五月婷婷| AV天堂淫乩| 五月婷婷中文字幕| 94干大香蕉| 激情五月婷婷在线区| 碰超99| 碰碰碰碰碰99| 久一这里有精品国产| 五月天激情国产综合婷婷| 超碰在线看| 99爽视频| PORNY九色9l自拍视频成人| 丁香五月之久操视频| 五月丁香激情片| 综合视频久久| 欧洲一区二区| 猫咪伊人久久| 三级毛片7979| 久热 91| 大香蕉大香蕉在线影院| 九九免费在线视频| www.9操| 凹凸7777操操操| 综合久| 亚卅毛片| 99视频精品| 色碰干| 亚洲成人超碰| 日韩不卡DvD| 91精品综合久久婷婷九色| 97久久精品视频| 少妇人妻凹凸视频| 99精品丰满| 91人妻视频| 激情婷婷丁香五月| 天天色综合网吨吧| 五月久久婷婷天堂视频| 九月激情网| 亚洲愉拍99热成人精品| 超碰在线99| 97操操操| 夫妇交换刺激做爰| 婷婷五月天偷拍| 岛囯综合激情网| 五月丁香黄色视频| 欧美人久久| 五月婷婷亚洲| 色五月婷婷 成人| 亚洲无AV在线中文字幕| 五月婷在线视频免费看| 另类图片激情五月| 99久久婷婷国产综合| 天天激情视频| 婷婷久久女人| 欧美99| 噜噜噜狠狠色综合| 伊久大香蕉| www.丁香五月| 五月天久久www| 五月叮香啪| 五月婷婷少妇之| 国产97在线日韩亚洲女人被黑人巨大| 婷婷色六月| 婷婷丁香九月| 国产欧美精品AAAAAA片| 久久综合五月天| 色女人久久| 婷婷六月丁香五月| 99热精品6| 97久久五月丁香婷婷| 婷婷久月| 丁香五月,激情五月,深爱五月| 91人人爽人人操| 激情六月天婷婷| 久久精品五月天| 婷婷大香蕉| 日本操逼九九九九58日本操逼 | 亚洲午夜AV| 少妇2做爰HD韩国电影| 狠色色狠网| 婷婷午夜精品久久久| 超碰在线9| 五月天欧美 另类小说| 九九激情| 国产肥白大熟妇BBBB视频| 日韩AAAAAAAAAAA片| 日韩九九视频| 精品久久婷婷| ai97re99一本| 欧洲色色| 亚洲综合1024| 停停六月 综合| 色色日本| 九月丁香婷婷综合| 色导航色婷婷五月天在线观看| 亚洲无码你懂的| 玖玖婷婷五月天| 亚洲婷婷五月天| 狠狠狠狠狠狠草| 97色色综合| 成人五月丁香花| 婷婷丁香在线| 久久婷婷综合国产| 狠狠xx| 色婷婷成人在线| 久青操| 天天视频精品9| 玖玖婷婷综合| AV成人在线播放| 久久综合五月天激情小说网站| 久99在线视频| 久久精品人妻| 26uuu欧美日本| 久久婷婷五月草视频在线播放| 婷婷婷久久久| 99日视频在线| 麻豆精品| 我去色色网五雨天| 婷婷丁香六月天| 亚洲另类电影| 久久只有18视频| 九九99香蕉在线视频播放| 色五月婷婷啪啪五月| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 啪啪婷婷五月天激情| 九九精品网| 国产精品色色色色| 伊人丁香花综合影院| 丁香五月天色综合| 天天噜天天爱| 婷婷日| 丁香婷婷五月天色综合| 快乐激情五月色婷婷| 九九超日本| av在线观看网址| 超碰免费人人肏| 日韩人妻白浆视频系列| www...com黄在线观看| 夜夜嗨一区二区三区直播内容| 精品人妻伦一二三区久久| 五月丁香六月婷综合成人综合| www.maotanji.com| 国产成人亚洲综合A∨婷婷| 五月婷婷丁香在线视频| 成人综合伍月天| 思思热久久爱| 婷婷五月天六月丁香| 五月成人网站| 色综合com| 色婷婷小说| 亚洲六月色| 色五月婷婷老师| 禁欲电影完整版在线播放| 色激情五月天| 色图亚洲91| 丁香九月综合在线| 丁香五月天黄色片| 色五月之第四色| 九九亚洲小视频| se99视频| 久久女婷| 激情五月综合网丁| 99在线观看精品| site:901-07.com| 色婷婷伦理| 99re视频精品| 五月婷婷av| 天天干天天爽| 久久丁香婷| 色五月婷婷综合在线| 日韩婷婷| 色色六月| 桃色五月婷婷| 播四月婷婷六月丁香| 日本色99| 丁香五月婷中字在线| 色婷婷色综合激情91| 九九RE视频在线精品| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 激情五月天色网站| 天天色天天搡| 婷婷综合爱| 国产 亚洲 在线| 中文字幕日产A片在线看| 啪啪五月综合| 亚洲综合丁香婷婷六月天| 欧美va欧美va差| 琪琪色五月天| 丁香五月婷婷图片综合| www,久久久| 日韩AAA| 中文字幕成人影视| 色爆五月| 亚洲综合激情五月久久| 思思热久热| 婷婷五月激情丁香| 丁香五月婷婷Av| 午夜九九电影| 五月婷婷综合激情网| 99久久超级| 色性综合| 综合另类视频| 亚洲第一av| 无码中文一区二区三区| 另类图片天天影视在线观看| 婷婷中文字暮| 午夜无码精品色综合久久| 无码激情| 99热性色| 天天日,天天插| 国外亚洲成AV人片在线观看| www.99久| 精品99在线| 激情五月婷婷色综合| 婷婷丁香色五月亚洲| 亚洲综合另类| 卡视频1区2区| 六月色播| 97操碰免费视频| 丁香婷婷人妻综合网| 丁香六月啪| 4399高清无码视频| 开心深爱激情网| 97干干干丁香| 激情网开心网| 青草视频在线观看视频 | 91丨九色丨大屁股| 五月天婷婷色五月天| 婷婷中文字暮| ou洲色吧| 99免费热视频在线| 成人免费视频一区| www.五月天婷婷| 色综合播放| 五月涩涩网| 97丨九色丨国产丨PORNY| 丁香婷婷精品视频| 国产成人片| 99热20| 日本一级一级一级一级| 婷婷在线五月天观看| 国产亚洲色婷婷久久99精品91| 综合久久婷婷| 日本色婷婷| 九九热色视频| 婷婷九月色| 日本婷婷丁香五月| 超碰在线caop| 日韩99色99| 曰本aaaaaa丈片| 五月天婷婷亚洲| 久久日韩婷婷五月| 久久99久久99精品免观看粉嫩| 99热第一页| 中文久久婷婷| 色综合色| 99久久国产宗和精品1上映| 五月丁香av在线| 日本V在线观看不卡视频网站| 九九热在这里只有精品| 久久久香港| 天堂五月婷婷| 成人深爱丁香五月| 超碰操日| 伊人色综合久久久| 538午夜激情| 国产又爽又猛又粗的视频A片| 99er在线观看| 97碰 在线视频观看| 天天爱天天做天天操| 另类在线观看视频| 免费精品99| 五月天精品综合在线| 成人 九九九九| 99热e| 欧美久久五月婷婷| 第1影院之五月婷婷| 99福利导航| 五月伊人综合| 性色综合网| www色婷婷| 啪啪五月天啪啪| 99久久色| 久久久久久97| 成人狠狠成人狠狠成人狠狠成人狠狠| 影音先锋 一区| 五月天久久婷婷| 久热这里只有精品在线| 久久久久9| 丁香五月婷婷免费视频| 久久女人天堂| 色综合色色色色色| 99九九在线| 色天使久久综合| 婷婷伊人网| 99热费观看| 深爱激情中文五月天av| 久久久久久久久久久久久久久久久精典| 九九九色综合| 婷婷五月综合激情免费| 亚洲五月天第一综合干| 久婷婷五月天影院| 99热99精品在线观看| www.久久| 亚洲人妻五月丁香婷婷| 日本a片网址| 午夜成人在线免费视频| 丁香综合日产精品久久| 亚洲综合五月天| 色噜噜五月天| 噜噜噜精品欧美成人在线观看| 爽极品色| 国产免费av在线| www,黄色在线,con| www99热| 51XX午夜影福利| 停停五月丁香| 婷婷五月天激情AV影院| 99干99| 日逼影音先锋男人AV资源站| 丁香五月情| 婷婷丁香五月在线播放| 久久99色色| 婷婷爱综合| 亚洲另类在线观看| 中文字幕AV网址| 色约约视频一区二区三区四区五区| 婷婷五月天丁香花| 久久激情五月婷婷| 色欲天天综合网| 久色激情| 久久九精品| 丁香婷婷深情五月亚洲| 婷婷干五月综合在线播放| 另类丁香五月天区图| 日韩精品AV一区二区三区| 五月婷婷av| 天天拍天天操| 色色日本欧美| 2017狠狠干| 激情婷婷丁香| 麻豆雪千夏| 超碰人人99| 国产精品久久久丁香五月八戒视频| 婷婷大美在线| 亚洲成人电影aaaa| www.久久66| 婷婷色五月天综合网| 国产精品噜噜在线视频| 五月色欧美| 婷婷五月中文字幕国产| 激情五月婷婷色| 伦99热| 婷婷激情啪啪| 天天干com| 五月丁香在线综合| www.99热| 久操大香蕉| 人妻久久久久久| 天天拍天天操| 果冻传媒A片一二三区| yw国产AV| 久久在线92| 亚洲精品99| 婷婷五月深深的爱| 丁香五月激情婷婷| 丁香五月影院| 亚洲视频99| 成人午夜天| 六六久久黄色| 色婷婷五月综合在线| 一本久道综合色婷婷五月| 99色综合网| 九色视频这里只有精品| 夜夜骑夜夜操| 99热在线播放| 五月天婷婷小说| 99热热热99精品婷婷| 久9草在线观看视频| 天天综合 99久久婷婷| 九九精品在线视频观看| 色婷婷五月六月丁香综合视频| 人人摸人人射| 激情亭亭五月| 五月丁香久久| 99啪在线| 99久久国产宗和精品1上映| 天天综合永久| 亚洲六月婷婷| 伊人婷婷大香蕉在线| 日本欧特黄色刺激一区影视久精品无码| 婷婷99热| 色情久久久| 国产avapp 网| 久久99最新地址| 久99热在线观看| 色噜噜,噜噜色| 亚洲五月婷婷| 中文成人在线| 青吴乐视频| 亚洲av免费在线| 可以直接看的AV网站| WWW.99热| 五月丁香A∨在线| 婷婷国产综合| 五月天综合网| 一起草AV入口| 99精品视频在线观看免费| 色色 9| 丁香激情五月| 人人性久久| 丁香五月婷婷欧美成人色图| 欧美丁香婷婷五月| 成人网站高清无码| 人人爽人人爽人人爽人人爽| 狼人久草| 看全色黄大色大片| AV天堂淫乩| 日韩成人av在线| 久久婷婷六月综合综合| 五月花婷婷最新| 婷婷五月天伊人网| 五月天婷婷綜合院| 五月婷婷六月丁香综合视频在线| 久久人人九九| 综合激情sV| 一级A片天天操夜夜操| 日日干夜夜干| 婷婷五月亚洲综合| 婷婷五月天AV在线| 伊人久热91| 噜噜噜精品欧美成人在线观看| 五月天婷婷久久| AV五月丁香| 荷兰av一级| 午夜激情久久| 婷婷干五月综合在线播放| 99在线精品免费视频| 99热这里只有99| 91大屁股精品| 91精品久久久久久久久| 五月婷婷啪啪| 99.N在线视频| 婷婷狠狠97| 偷拍91九色| 三十路磁力链接| 国产AV一区二区三区最新精品 | www99热| 182tv992tv人之初午夜免费观看| 五六月婷婷| 久久这里只精品| 五月天激情综合网俺也去| 久久丁香五月婷婷| 丁香五月婷婷基地| 99在线观看| 九九99在线免费在线观看视频| 久久久激情视频| 久草 天堂| 91ncom.色| 久久激情网| 97超碰在线免费观看| 超碰色婷婷| 日夜操B| 五月六月丁香激情视频| www.夜夜操| 五月天激情国产综合AV| 99riAV成人在线视频| 丁香六月激情综合啪啪| 九色porny在线观看激情四射| 久久人妻久久| 色综合色色色色色色综合| 激情www| 欧美色97| 俺去也五月天| oVV4WIB3vFi8D| 久久综合55| 久9视频免费播放| 超碰人人草| 97精品人人A片免费看| 亚洲人妻一区二区| 五月丁香中文婷婷中文| 九九色欲网| 99丁香五月婷| 久久久精品婷婷五月天| 亚洲第一综合| 一起草AV| 97日本在线播放| 色综合五月天| 婷婷色色狠狠| 六月丁香婷婷爱| 欧美在线视频免费播放| 五月婷婷色播视频| 色九月综合| 欧美三级欧美一级| 五月婷婷成人w| 99re免费视频| 婷香五月激情视频| 婷婷丁香激情五月天色色| 国产无人区大片| 91丨九色丨大屁股| 99re鈥哸鈥唙| 久9精品视频| 中国丰满熟女A片免费观| 深爱激情五月婷婷| 亚洲色色色色色| 亚洲99一级无嗎特制在线| 欧美丁香婷婷五月| 天天综合久久| 69人妻人人澡人人爽久久| 五月丁香啪啪啪| 99热这里有精力| 天天狠天天狠| 久久亚洲无码| 色爽干| 色五月综合网| 婷婷开心五月| 婷婷五月丁香高清无码| 91热视频色网站| 激情图片亚洲| 伊人五月天| 涩综合婷婷| hd五月婷婷在线| 激情综合五| 亚洲最大视频网站| 九热视频| 久久婷婷啪啪视频| 久久机热这里只有精品| 亚洲VA欧美VA| 国产精典视频在线观看| 99热免费18| 97精品人人A片免费看| 亚洲视色| 久久99这里只有精品视频| www.狠狠| 色女人久久| 久久五月天丁香| 99燥99日| 日本狠狠干| 久久色情| 色吧五月婷婷| 婷婷五月天无码| 99久久er| 色五月婷婷开心| 色五月xxx| 91热爆在线| 99人人干人人| 色五月中文字幕| 五月婷九月| 69凹凸成人综合网| 96精品成人无码A片观看金桔| 99热久| AV在线观看网站| 九九热经典视频在线观看| 夜夜骑日日夜夜| 欧洲婷婷五月天| 久久精品性爱视频,| 色99视| 97久操| 中文字幕人妻AV| 六月丁香AV| 97luluse| 婷婷丁香五月社区亚洲| 五月婷婷色在线| 免费看成人AA片无码视频吃奶| 在线不卡视频| 丁香六月婷婷综合| 激情综合五月| 亚洲爆乳无码精品AAA片蜜桃| 99熟女| 五月天色五月| 成人免费120分钟啪啪| 在线观看国产高清视频免费网站| www.超碰| 五月开心播播网| 成人在线二区| 亲子乱AV-区二区三区| 激情婷婷护士激情| 五月婷婷亚洲综合在线 | 婷婷丁香综合在线| 97人人操com| 色一情一乱一乱一区9| 婷婷五月丁香香蕉| www.99热在线观看| 岛国AAAV| 六月综合婷婷开心伊人 | 综合99视频| 久久多色| 丁香九月综合| 激情五月丁香婷婷夜夜操| 激情综合五月激情17| 青青草深爱激情网| 色噜噜狠狠插综合| 五月婷婷中文字幕| 五月婷婷六月天| 9精品久久999| www.久久色.com| 91精品国产99久久久久久天美| 97在线精品| 极品 少妇 内射| 丁香五月五月婷婷五月天激情四射| 成人精品亚洲性爱| 五月天婷婷色播| 五月成人天| 婷婷九九| 婷婷综合| 五月丁香六月激情网站| 99热九九在线| 丁香婷婷人妻| 久久婷婷五月草视频在线播放| www国产亚洲色婷婷com| 亚洲无码色色| 91色噜噜狠狠狠狠色综合| www.婷婷| 91大神在线免费看视频全集男男一起操| 久久大香蕉同僚| 这里只有精品热| 人人爽天天爽| www.婷婷| 婷婷五月激情五月丁香五月| 久久久精品视频79| 乱色色色| 六月丁香五月婷婷| 丰满老熟妇BBBBB搡BBB| 久热精品在看| 在线成人网址| 开心五月婷婷99| 五月婷婷六月天| 97色色视频| 91九色超碰正在播放| 久久亚洲婷婷综合色五月| 99无码黄色视频| 狠狠五月天| 五月天久久网站| 色五月婷婷开心| 欧美在线干| 奇米色大香蕉| 香蕉婷婷色五月| 五月婷婷AV| 综合久久五| 久久精品系列| 五月天玖玖狠狠色色| 99热国产| 天堂亚洲 在线| 日韩六十路91性交电影| 五月丁香啪啪激情| 农村熟妇高潮精品A片| 久久久性爱视频| 337午夜福利| 99啪啪| 9人人操人人看| 日本操逼九九九九58日本操逼| 色婷婷丁香五月| 亚洲性爱电影| 色噜噜狠狠色综无码久久合欧美| 九一九九黄色| 色五月婷婷五月丁香五月| 日99网站| 五月丁香六月停停| 91|疯狂丨高潮丨对白| 五月亚洲激情| 五月天激情小说网| 日本精品。999| 国产精产国品一二三在观看| 亚洲俩性性爱图片久久第六页| 无码色色色| 秋霞三级色戒| 久操综合| 久婷婷婷| 综合激情五月婷婷| 丁香五月婷婷亚洲激情四射| 99精品无码视频| 中文字幕在线免费观看视频| 久久婷婷综合国产| 色色色色网| 久久天堂女人| 五月丁香六月婷婷的女人| 六月丁香婷婷网| 超碰在线看| 狠色综合网| 丁香午夜天| 亚洲激情av| 婷婷亚洲欧美丁香五月| 92久久久| 日日爽日日| 99热在线观看| 激情网 五月天| 国产SUV精品一区二区6| 噜噜综合网| 亚洲精品字幕在线观看| 婷婷色中文字幕| 亚洲欧洲另类| 超碰在线看| 伊人五月综合网| 淫荡家庭AV| 色婷婷a v| 久色网址| 99热思思| 中文字幕丁香五月| 亚洲视频综合网| 五月婷婷丁香大陆免费| 超碰在线caop| 五月丁香狠狠| 日本在线wwww| 99久在线精品99re5热视频| 大香蕉视频婷| 日本色爽| 婷婷色六月| 五月丁香啪综合| 在线播放成人网站| 激情综合亚洲| 九九热这里只有精品12| 人人摸人人干| 五月天婷婷小说| 99re在线精品视频| 天天操天天干天天日| 无码人妻电影| 97人妻碰碰中文无码久热丝袜| 天天搞夜夜叫| 色色色激情网| 五月婷婷五月天| av九九| 美国少妇性做爰| 九九热国产| 丁香五月色网| 丁香五月激情啪啪| 日操夜撸| 久久激情五月| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 婷婷偷拍网| 黄色三级毛片中字| 草综合14| 天天人人综合| 99国产精品白浆在线观看免费 | 亚洲操精品| 五月激情影院| 六月色播| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 九九九九国产| 亚洲 六月 综合| 欧美性二区| 日本123区日韩欧美不卡在线看| 操一区| 欧美激情综合色综合啪啪五月| 深爱激情久久| 色色综合成人网| 91 原创 在线 九色| j五月香在线| av在线资源| 中文字幕激情综合| 天天色综合网吨吧| 草美女在线观看视频在线播放| 色吊丝永久访问网址| 色色9 9| 五月天婷婷成人网| 色色吧综合| 日本狠狠干| 欧州色色| 狠狠干青青草| 欧美性二区| 五月天婷婷在线播放| 99亚州综合精品成人网| 五月丁香在线偷拍视频| 第四色色六月色综合| 人人操插| 色娸娸综合网| 97婷婷丁香五月天激情图片| 91婷婷视频| 亚洲乱码日产精品BD| 99精品无码| 夜夜夜夜夜操| 亚洲旡码| 亚洲乱码w在线观看| 激情五月婷婷开心网| 国产另类综合| 色五月色综合| 颜射 精品性爱av| 久久66er久久| 亚洲婷婷视频| 婷色五月| 五月天亚洲图片婷婷| www.激情| 激情五月天色色网| 男女99免费视频| www.色99| 天天爽夜夜爽夜夜爽精品| 色婷婷亚洲婷婷| 激情五月婷婷| www.99在线| 久久这里只有精品久久| 午夜丁香丁香婷婷| 九九综合视频在线观看| 婷婷亚洲日本| 婷婷基地成人五月天| 色婷婷成人丁香| site:wpjngj.com| 99热这里只有精品10| 狠狠色官网| 天天摸天天高潮天天爽| 日韩色情亚洲五月天婷婷| 五月精品免费XXX| 逼里香不卡| 可以看的av| av久热| 久9视频| 91紱請| 大香伊人婷婷影院| 九九99热久久精品66中文字幕| 伊人网碰碰| 秋霞免费三级片| 五月人人丁香婷婷五月人人丁香| 白天AV月月| 深爱激情五月婷婷| 婷婷九月在线| 久久九九99| 大战熟女丰满人妻AV| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 丁香五月天在线观看视频| 99在线观看这里都是精品| 色青五月天| 91精品久久久久、久五月天| 亚洲综合视频网| 久久人妻精品| 超碰在线50| 久久婷婷资源| 丁香五月激情婷婷视频| 色天天综合色| 夜夜操夜夜操| WWW.婷婷| 色综合综合综合| 久久色9| 99热成人精品| 色婷婷久综合久久一本国产AV| 天堂久久婷婷| 精品一二三区久久AAA片| 日韩成人影片在线观看| 麻豆雪千夏| 丁香五月天网站| 婷婷五月天,影院| 五月婷婷综合丁香视频| 久热九九| 综合六月久久| 五月丁香啪啪综合网| 五月激情精品视频| 人人草人| 狠狠操狠狠| 综合99在线| 欧美va精品va老师va| www,99热| 日韩成人免费电影| 丁香五月很很肏| 综合欧美五月婷婷| 亚洲热热视频| 丁香五月偷拍| 69色婷婷| 五月天婷婷色播在线网| 色私五月婷婷| 在线成人va| 久久婷.com| 夜丁香五月婷婷| 亚洲无码99| 99久久五月丁香野外| 亚洲色婷婷99一9|| 亚洲成人无码网站| 婷婷色色网站| 五月天激情黄色小说在线观看 | 人人射人人高潮| 99热免费| 久久伊人婷婷| 五月天婷婷在线AN| 欧美搡BBBBB摔BBBBB| 五月丁香亭亭操逼| 五月开心深爱激情网| 丁香五月综合| 超碰在线免费| www.99成人视频| 99精品在线观看| 9操在线| 天天干天天干天天干天天干天| 蜜桃人妻无码AV天堂三区| 欧美精产国品一二三区| 亚洲成人噜噜| 亚洲蜜桃精久久久久久久久久久久| www.久久爱.com| 六月丁香激情网| 婷婷五月天天| 久久黄色免费视频| 久久五月综合| 久久久久久久久久91| 久热这里只有精品99re| 99热网精品| 五月综合婷婷开心网| 亚洲无码99| 亚洲色五月| 九九九色综合| 婷婷97碰碰| 婷婷五月天亚洲综合| 九九激情| 婷婷精品性性性性性性性| 香蕉97碰碰碰欧美| 婷婷六月色丁香视频在线观看| WWW.婷婷| 超碰在线99| 97久久超碰| 自拍偷窥99热| 五月色色色| 91九色国产| 国产成人网| 五月丁香综合啪啪| 日韩成人电影AV| 丁香六月久久| 97福利视频| 五月激情丁香五月| 人人摸人人| 狠狠色婷婷7| 激情开心五月天| 97激情五月天| 日韩艹比| 色综合综合网| 亚洲视频在线网| 色噜噜五月天| www,com,五月色色| 玖玖爱综合网| 色婷婷电影网| 天天做天天爽| 亚洲九九99精品视频在线播放| 色婷婷很很丝袜|