亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

React Native 應(yīng)用遷移 OpenHarmony 實(shí)戰(zhàn):數(shù)學(xué)練習(xí)應(yīng)用開發(fā)與調(diào)試

React Native 應(yīng)用遷移 OpenHarmony 實(shí)戰(zhàn):數(shù)學(xué)練習(xí)應(yīng)用開發(fā)與調(diào)試 這兩年我一直有意把一些跨平臺項(xiàng)目往 OpenHarmony 上搬剛好遇到一個適合練手的場景數(shù)學(xué)練習(xí)。大概背景是我手上有一份用 React Native 寫的口算練習(xí) Demo之前在 iOS 和 Android 上都跑得很順后來一次技術(shù)交流中看到 React Native for OpenHarmony 的適配層已經(jīng)能支撐常見業(yè)務(wù)組件就決定拿它做一次完整遷移實(shí)戰(zhàn)。這篇文章把整個過程拆開講從工程初始化、功能實(shí)現(xiàn)到真機(jī)調(diào)試覆蓋我自己踩過也估計(jì)你們大概率會踩的坑。適合三類人看已經(jīng)在 RN 上寫過業(yè)務(wù)、想了解它能不能跑 OpenHarmony 的開發(fā)者剛接觸 OpenHarmony、需要快速上手跨平臺方案的開發(fā)者以及單純想找一個工具型 App 完整落地案例的學(xué)生。1. 項(xiàng)目定位與整體拆解1.1 數(shù)學(xué)練習(xí)這個場景為什么適合做實(shí)驗(yàn)田先說業(yè)務(wù)背景。我要做的不是那種復(fù)雜題庫系統(tǒng)而是面向小學(xué)低年級的口算訓(xùn)練工具隨機(jī)出加減乘除題孩子輸入答案系統(tǒng)判斷對錯一輪做完給正確率和用時錯題自動進(jìn)錯題本。這類應(yīng)用有個特點(diǎn)業(yè)務(wù)邏輯幾乎都集中在計(jì)算和狀態(tài)流轉(zhuǎn)上UI 以文本、按鈕、輸入框?yàn)橹鞑恍枰貓D、相機(jī)、高性能渲染這些重度原生能力。換句話說它是典型的“邏輯驅(qū)動型”應(yīng)用非常適合驗(yàn)證一個跨平臺框架在一個新系統(tǒng)上的成熟度。如果把應(yīng)用換成視頻剪輯或者帶大量自定義畫布的工具那 RN 適配層的壓力會大很多很多原生能力可能還沒鋪齊容易把框架短板全部暴露出來。數(shù)學(xué)練習(xí)不一樣它需要的組件無非是 View、Text、TextInput、FlatList、TouchableOpacity適配層只要把這些映射穩(wěn)了開發(fā)體驗(yàn)和運(yùn)行效果就不會差。所以我說它是 OpenHarmony 上做 RN 遷移的理想“小白鼠”項(xiàng)目。還有一個隱性好處教育類工具對 UI 動態(tài)反饋要求高比如答對時背景閃綠、答錯時抖動這些動畫用 RN 的 Animated 或 LayoutAnimation 就能處理不需要深入 ArkUI 寫自定義動畫。這樣我可以把精力放在驗(yàn)證跨平臺邏輯上而不是和系統(tǒng) UI 框架死磕。1.2 為什么不是直接用原生 ArkUI 開發(fā)這個問題我在動手前問過自己。如果團(tuán)隊(duì)里已經(jīng)有人熟悉 OpenHarmony 原生開發(fā)直接上 ArkUI 肯定是最穩(wěn)的畢竟沒有中間層損耗。但我這邊的現(xiàn)實(shí)情況是核心業(yè)務(wù)代碼已經(jīng)用 React Native 寫好團(tuán)隊(duì)對 RN 生態(tài)也更熟ArkUI 雖然聲明式寫起來不復(fù)雜但為了一個工具型應(yīng)用重新維護(hù)一套原生代碼成本并不劃算。更重要的是React Native for OpenHarmony 的適配方式不是套個 WebView 的殼而是把 RN 的 JS 邏輯跑在系統(tǒng)自帶的 JS 引擎上再通過適配層把虛擬節(jié)點(diǎn)映射成 OpenHarmony 的原生組件。換句話說業(yè)務(wù)層寫的是 TypeScript / JavaScript渲染層走的是原生組件不是 HTML 頁面。這保證了性能下限和原生交互體驗(yàn)和傳統(tǒng)的 Hybrid 方案有本質(zhì)區(qū)別。當(dāng)然跨平臺不是免費(fèi)的。適配層目前還沒有覆蓋 iOS / Android 上的全部 API尤其是一些偏門原生模塊可能需要我寫自定義原生橋接。而數(shù)學(xué)練習(xí)這個項(xiàng)目基本不碰這些偏門能力所以我只需要關(guān)注 RN 標(biāo)準(zhǔn)組件在 OpenHarmony 上的行為差異成本可控。1.3 功能范圍與版本規(guī)劃我給自己定的第一個版本功能清單如下模塊功能點(diǎn)優(yōu)先級出題引擎隨機(jī)生成加減乘除題支持難度分級P0答題交互輸入答案、提交、即時反饋P0練習(xí)會話每輪 10 題計(jì)時完成后統(tǒng)計(jì)正確率P0錯題本自動記錄錯題支持重新練習(xí)P1歷史成績本地保存最近 20 條練習(xí)記錄P1設(shè)置頁選擇題型范圍、題目數(shù)量、是否計(jì)時P2我不建議第一個版本就把家長端、老師端、云端同步全做進(jìn)去那會沖淡“驗(yàn)證 RN on OpenHarmony”這個主目標(biāo)。先把單機(jī)版跑通再把 P1、P2 功能加上整個項(xiàng)目節(jié)奏會舒服很多。2. 環(huán)境準(zhǔn)備與工程骨架搭建2.1 工具鏈準(zhǔn)備與版本搭配OpenHarmony 應(yīng)用開發(fā)繞不開 DevEco Studio這是官方 IDE工程構(gòu)建、簽名、真機(jī)安裝都靠它。RN 側(cè)則需要 Node.js 環(huán)境以及社區(qū)提供的 OpenHarmony 適配腳手架和 npm 依賴包。動手之前我建議先把以下工具裝齊Node.js建議 LTS 版本我這里用的是 18后面跑 Metro 和打包都要靠它DevEco Studio用當(dāng)前正式發(fā)布版本即可OpenHarmony SDK在 DevEco Studio 里通過 SDK Manager 下載一臺 OpenHarmony 真機(jī)或模擬器模擬器調(diào)試方便但有些硬件能力測不了。版本搭配是最容易被忽略的坑。RN 社區(qū)迭代快適配層一般會跟著 RN 版本走比如某個適配版本只支持某個 RN 大版本。我一開始圖省事直接裝最新版 RN結(jié)果適配包還沒跟上最后只能降級到受支持的版本。建議先查一下適配包說明里寫的“已支持 RN 版本范圍”再決定初始化用哪個模板別盲目追新。2.2 初始化工程把 RN 工程和 OpenHarmony 工程串起來這里有兩種路徑一種是從零創(chuàng)建用社區(qū)腳手架直接生成同時包含 RN 和 OpenHarmony 殼的工程另一種是已有 RN 工程再補(bǔ)一個 OpenHarmony 工程接入。我這次因?yàn)槭诸^有舊 Demo走的是第二種。從零創(chuàng)建的大致命令是這樣以我用的腳手架版本為例具體命令名以你拉到的版本為準(zhǔn)npx react-native-ohos/generator-cli init MathPracticeApp --template react-native-ohos/template執(zhí)行完會生成一個同時包含harmony目錄和標(biāo)準(zhǔn) RN 目錄的工程。如果已有 RN 工程需要手動在工程里加入 OpenHarmony 殼工程并把node_modules/react-native-ohos/...下對應(yīng)的底層庫引入殼工程。初始化完成后的第一件事不是急著寫業(yè)務(wù)代碼而是先跑一個空模板確認(rèn) “RN 的 JS 層打包出來的 bundle 能被 OpenHarmony 殼加載”。這個環(huán)節(jié)通了后面所有開發(fā)才有意義。我當(dāng)時第一次跑的時候卡在簽名上沒簽名裝不到真機(jī)模擬器又不穩(wěn)定折騰了小半天才把鏈路打通。2.3 工程結(jié)構(gòu)與目錄說明生成后的工程結(jié)構(gòu)大致長這樣MathPracticeApp ├── App.tsx # RN 業(yè)務(wù)入口 ├── harmony # OpenHarmony 殼工程 │ ├── entry │ │ ├── src/main/ets # 原生入口和橋接代碼 │ │ └── src/main/resources # 應(yīng)用圖標(biāo)、字符串等資源 │ ├── hvigorfile.ts # 構(gòu)建腳本 │ └── oh-package.json5 # 原生依賴 ├── index.js ├── package.json └── tsconfig.json理解這個結(jié)構(gòu)的關(guān)鍵是RN 代碼是業(yè)務(wù)主體harmony目錄只是一個殼負(fù)責(zé)把應(yīng)用跑在 OpenHarmony 系統(tǒng)上并提供 JS 引擎和渲染橋接。日常開發(fā)絕大部分時間在App.tsx和 src 目錄下的業(yè)務(wù)組件里度過不太需要動原生殼。有一點(diǎn)需要注意不要隨便改harmony目錄下的構(gòu)建文件名和包名配置。包名bundleName是 OpenHarmony 應(yīng)用的唯一標(biāo)識牽扯到安裝和更新我見過有人改了 bundleName 后舊數(shù)據(jù)讀不到排查半天才發(fā)現(xiàn)是包名變了AsyncStorage 的數(shù)據(jù)跟著失效。3. 數(shù)學(xué)練習(xí)核心功能設(shè)計(jì)與實(shí)現(xiàn)3.1 題目生成器避開這幾個數(shù)學(xué)坑數(shù)學(xué)練習(xí)的靈魂是出題。看似簡單實(shí)際需要考慮三個原則不能出現(xiàn)“不夠減”的減法、除法必須整除、不同運(yùn)算符難度要可控。如果忽略這些二年級小朋友練到一半發(fā)現(xiàn) 3 - 8 -5或者 7 ÷ 2 3.5產(chǎn)品就沒法用了。我實(shí)現(xiàn)了一個可配置的題目生成器核心思路是先確定運(yùn)算規(guī)則再根據(jù)規(guī)則生成合法數(shù)字interface Problem { id: string; left: number; right: number; operator: | - | × | ÷; answer: number; expression: string; } function generateProblem( maxNumber: number, operator: | - | × | ÷, ): Problem { const left Math.floor(Math.random() * (maxNumber 1)); const right Math.floor(Math.random() * maxNumber) 1; if (operator -) { // 保證結(jié)果不為負(fù) const a Math.max(left, right); const b Math.min(left, right); return { id: ${Date.now()}-${Math.random()}, left: a, right: b, operator, answer: a - b, expression: ${a} - $, }; } if (operator ÷) { // 通過“被除數(shù) 除數(shù) * 商”來構(gòu)造整除題 const divisor right; const quotient Math.floor(Math.random() * (maxNumber / divisor)) 1; const dividend divisor * quotient; return { id: ${Date.now()}-${Math.random()}, left: dividend, right: divisor, operator, answer: quotient, expression: ${dividend} ÷ ${divisor}, }; } // 加法和乘法直接算即可 const answer operator ? left right : left * right; return { id: ${Date.now()}-${Math.random()}, left, right, operator, answer, expression: ${left} ${operator} ${right}, }; }減法的關(guān)鍵是用Math.max和Math.min把兩個數(shù)對調(diào)從根上避免負(fù)數(shù)。除法的關(guān)鍵是用divisor * quotient反推出被除數(shù)而不是隨機(jī)出兩個數(shù)再用浮點(diǎn)數(shù)相除。順便提一句Math.random()的隨機(jī)性足夠出題用不需要用加密級隨機(jī)數(shù)別過度設(shè)計(jì)。出題引擎寫完后我建議花十分鐘補(bǔ)幾個邊界測試比如maxNumber5時連續(xù)生成 200 題確認(rèn)沒有結(jié)果超范圍除法題確認(rèn)所有answer都是整數(shù)。這些測試雖然簡單但能攔住后面改代碼時不小心的回歸。3.2 答題交互與校驗(yàn)邏輯答題界面這邊最需要小心的是輸入框和鍵盤。數(shù)學(xué)練習(xí)只需要數(shù)字輸入所以 TextInput 要設(shè)置keyboardTypenumeric。但注意在 OpenHarmony 的原生鍵盤適配還不是很完美的情況下numeric有時候會調(diào)起支持小數(shù)點(diǎn)的鍵盤孩子誤按小數(shù)點(diǎn)了就容易提交非法內(nèi)容。我的校驗(yàn)邏輯是把用戶輸入先用Number(input)轉(zhuǎn)換再用Number.isNaN排除異常值最后比較答案時用一個極小誤差閾值。為什么不用parseInt因?yàn)閜arseInt(12abc)會返回 12把用戶輸入的臟數(shù)據(jù)當(dāng)合法值處理了不適合做嚴(yán)格校驗(yàn)。function checkAnswer(problem: Problem, input: string): boolean { const value Number(input); if (Number.isNaN(value)) { return false; } return Math.abs(value - problem.answer) 1e-6; }提交后的反饋也要設(shè)計(jì)好。我這里做了三檔答對了按鈕變成綠色提示“正確”答錯了按鈕抖一下顯示正確答案空提交直接忽略不判對也不判錯。這里有個交互細(xì)節(jié)空提交不該消耗一次答題機(jī)會否則孩子誤觸就白白錯了會打擊積極性。3.3 練習(xí)輪次與難度配置練習(xí)過程我定義成三個狀態(tài)ready準(zhǔn)備開始、doing答題中、finished本輪結(jié)束。從doing到finished的切換條件是當(dāng)前題號達(dá)到總題數(shù)而不是用一個單獨(dú)的“結(jié)束”按鈕。這個設(shè)計(jì)更貼近實(shí)際使用孩子把最后一道題做完結(jié)果頁直接出現(xiàn)中間不需要額外操作。難度配置放在設(shè)置頁影響的是題目生成器參數(shù)。比如難度最大數(shù)字可用運(yùn)算符入門10、-基礎(chǔ)20、-、×進(jìn)階100、-、×、÷配置信息會在每次生成題目時傳入但我建議在做題中途不改難度。最簡單的方式是每次點(diǎn)“開始”時讀取一次配置鎖定到本輪上下文里。如果你用全局變量存難度做題中途孩子去設(shè)置頁切了難度當(dāng)前這輪題目就亂了。4. 狀態(tài)管理與數(shù)據(jù)持久化4.1 練習(xí)會話的狀態(tài)建模useState 還不夠一開始我用三個useState分別存當(dāng)前題、答對數(shù)、計(jì)時器結(jié)果發(fā)現(xiàn)代碼很亂提交答案時需要同時更新題號、正確數(shù)、答案列表三個 setState 經(jīng)常漏一個。后來我把一輪練習(xí)的所有狀態(tài)合并成一個對象用useReducer管理思路立刻清晰了。type SessionState { index: number; problems: Problem[]; answers: (string)[]; correctCount: number; startTime: number; elapsedSeconds: number; }; type Action | { type: START; problems: Problem[] } | { type: SUBMIT_ANSWER; answer: string; isCorrect: boolean } | { type: FINISH };SUBMIT_ANSWER時把index 1、correctCount、answers一并更新結(jié)果頁只需要讀取這一個 state 對象UI 和邏輯完全對應(yīng)。不要小看這一步跨平臺項(xiàng)目最怕的就是業(yè)務(wù)狀態(tài)分散在多個useState里最后調(diào) UI 時互相打架。4.2 AsyncStorage 存取練習(xí)記錄OpenHarmony 適配層提供了 AsyncStorage 的兼容實(shí)現(xiàn)接口和 RN 端一致因此業(yè)務(wù)代碼不需要針對平臺寫差異。我用它存兩樣?xùn)|西歷史成績列表和錯題記錄。存儲層我做了一個很薄的封裝統(tǒng)一處理讀取、寫入、JSON 序列化import AsyncStorage from react-native-async-storage/async-storage; const RECORD_KEY math_practice_records; export async function loadRecords(): PromisePracticeRecord[] { const raw await AsyncStorage.getItem(RECORD_KEY); if (!raw) return []; try { const parsed JSON.parse(raw); return Array.isArray(parsed) ? parsed : []; } catch (e) { return []; } } export async function appendRecord(record: PracticeRecord): Promisevoid { const list await loadRecords(); list.push(record); // 只保留最近 20 條避免內(nèi)容無限膨脹 const trimmed list.slice(-20); await AsyncStorage.setItem(RECORD_KEY, JSON.stringify(trimmed)); }這里有個容易踩的坑AsyncStorage 的讀寫是異步的如果連續(xù)快速調(diào)用可能出現(xiàn)后寫覆蓋先寫的情況。我在提交本輪結(jié)果時只用appendRecord一次不在循環(huán)里頻繁調(diào)用。另外JSON 解析失敗要返回空數(shù)組不能直接 throw否則歷史記錄一壞整個 App 啟動就崩了。4.3 錯題本不只是記一句“做錯了”錯題本如果只存“3 5 做錯了”后續(xù)重練根本沒有可用的上下文。要保證錯題本有價值每條記錄必須包含題目表達(dá)式、正確答案、用戶當(dāng)時的錯誤答案、出錯時間。這樣才能做到錯題重練時按原題復(fù)現(xiàn)。我的錯題記錄結(jié)構(gòu)interface WrongRecord { id: string; expression: string; correctAnswer: number; wrongAnswer: string; timestamp: number; }錯題重練和普通練習(xí)共用一個出題引擎但參數(shù)不同直接給定expression和答案不再走隨機(jī)生成器。這個復(fù)用比單獨(dú)寫一套“錯題練習(xí)”邏輯省事得多新功能也就一個頁面的事。有一點(diǎn)要特別提醒錯題本存儲必須做去重。孩子同一道題錯三次不要存三條而是更新原記錄的timestamp和wrongAnswer。我判斷重復(fù)的標(biāo)準(zhǔn)是expression correctAnswer相同就合并。否則跑一個月后錯題本會膨脹到?jīng)]法看。5. 原生能力銜接與性能優(yōu)化5.1 可以接入的原生能力與接入方式數(shù)學(xué)練習(xí)不依賴攝像頭、定位這類敏感權(quán)限但還是有兩個原生能力值得接入震動和語音報題。答對時輕輕震一下答錯時長震動這個反饋對低齡用戶非常友好語音報題則可以讓孩子不用盯著屏幕讀題聽題作答。震動在 OpenHarmony 適配層里可以通過橋接調(diào)用原生模塊實(shí)現(xiàn)但 RN 原生模塊在 OpenHarmony 上的注冊方式和 Android 不完全一樣需要在harmony/entry/src/main/ets里寫一個原生模塊再在 JS 側(cè)調(diào)用。這部分代碼量不大我建議放到業(yè)務(wù)功能全部跑通之后再做前期別讓原生橋接干擾主流程。老實(shí)說如果你只做單機(jī)練習(xí)不接語音和震動也完全夠用。但如果你也想驗(yàn)證一下 RN 原生橋接在 OpenHarmony 上的完整鏈路那值得試一次畢竟這是跨平臺方案繞不開的話題。5.2 bundle 打包與首屏優(yōu)化RN 應(yīng)用在 OpenHarmony 上有兩種加載 bundle 的模式開發(fā)模式連 Metro運(yùn)行時按需拉取發(fā)布模式把 bundle 打包進(jìn) hap 包安裝后離線加載。首屏優(yōu)化最關(guān)鍵的是把發(fā)布模式的預(yù)打包做對。我的做法是先在工程里配置好assets/index.bundle的輸出路徑然后在構(gòu)建 hap 之前先執(zhí)行打包腳本讓 JS bundle 進(jìn)到entry/src/main/resources/rawfile下。這個過程有點(diǎn)繞如果發(fā)現(xiàn)真機(jī)上長時間白屏優(yōu)先懷疑 bundle 文件有沒有真的打進(jìn)包里。另一個優(yōu)化點(diǎn)是拆分“首屏等待”。數(shù)學(xué)練習(xí)首頁啟動時需要讀本地設(shè)置如果每次都在頁面上 await用戶會看到白屏。我改成先渲染默認(rèn)設(shè)置再異步加載本地配置并更新界面。雖然差了零點(diǎn)幾秒但啟動感知差別明顯。這套思路在 RN for OpenHarmony 上同樣有效因?yàn)樗簧婕霸阅苷{(diào)優(yōu)而是從用戶體驗(yàn)出發(fā)做取舍。5.3 列表卡頓與渲染優(yōu)化歷史成績和錯題本都用 FlatList 實(shí)現(xiàn)。FlatList 在 RN on OpenHarmony 上能用但需要注意三件事第一每條列表項(xiàng)的數(shù)據(jù)結(jié)構(gòu)要盡量扁平不要在 renderItem 里做復(fù)雜計(jì)算。比如歷史成績里的“正確率”和“時長”字段我是在寫入記錄時就算好存下來渲染時直接讀字段不對源數(shù)據(jù)做二次計(jì)算。第二必須設(shè)置穩(wěn)定且唯一的keyExtractor。我用的是記錄里的id字段不用數(shù)組 index。原因很簡單列表項(xiàng)如果只是 index插入或刪除時會引發(fā)整頁重渲染OpenHarmony 上的表現(xiàn)會更敏感。第三避免在renderItem里使用內(nèi)聯(lián)箭頭函數(shù)。寫成renderRecord{this.renderRecord}而不是renderItem{() Item/}這樣列表復(fù)用節(jié)點(diǎn)時才能命中優(yōu)化路徑。這個點(diǎn)在 Android 上不明顯但我在 OpenHarmony 上測試時內(nèi)聯(lián)函數(shù)和高頻刷新同時出現(xiàn)滾動確實(shí)會掉幀明顯。6. 真機(jī)調(diào)試與問題排查6.1 從白屏到跑起來調(diào)試基礎(chǔ)操作RN on OpenHarmony 的調(diào)試思路和 Android 類似但也有自己的怪脾氣。真機(jī)連接 DevEco Studio 后先確認(rèn)設(shè)備能安裝 hap 包再確認(rèn) Metro 服務(wù)是否正常啟動。我碰到過的情況是Metro 沒開應(yīng)用裝上了也白屏日志里一堆“bundle load failed”。開發(fā)模式下手機(jī)和電腦必須在同一局域網(wǎng)而且 Metro 的監(jiān)聽地址不要用localhost否則真機(jī)訪問不到。我直接在命令行里跑react-native start --host 0.0.0.0這樣手機(jī)可以通過電腦的局域網(wǎng) IP 訪問 Metro。日志這塊也有坑。OpenHarmony 的 hilog 和 RN 的 console 不一定完全打通有時候業(yè)務(wù)代碼報錯了DevEco 控制臺看不到信息。我的做法是給關(guān)鍵流程加一份本地日志寫入比如記錄“bundle 加載完成”“題目生成成功”“存儲執(zhí)行成功”這些打點(diǎn)真機(jī)出問題時先看這些打點(diǎn)再回頭查 hilog。6.2 常見問題速查表現(xiàn)象可能原因排查思路真機(jī)安裝失敗包簽名不對在 DevEco Studio 里重新配置簽名確認(rèn) bundleName 和證書匹配白屏且無報錯bundle 未打進(jìn) hap 或 Metro 未啟動檢查 rawfile 下有沒有 bundle 文件確認(rèn) Metro 可用中文輸入法無法調(diào)起TextInput 的鍵盤類型與系統(tǒng)沖突用keyboardTypenumeric并測試不同輸入法版本樣式不一致部分 RN 樣式屬性未完全映射查看適配層支持的樣式列表用boxShadow等屬性時預(yù)留降級方案AsyncStorage 讀不到數(shù)據(jù)bundleName 或應(yīng)用被卸載確認(rèn)包名未改變卸載重裝會清空本地數(shù)據(jù)滾動列表卡頓renderItem 內(nèi)聯(lián)函數(shù)或 key 不穩(wěn)定設(shè)置穩(wěn)定 key抽離 renderItem 為獨(dú)立方法這張表不是從文檔里抄的都是我自己在真機(jī)上一個一個試出來的。尤其是樣式不一致那條boxShadow在 Android 上已經(jīng)支持得不錯但 OpenHarmony 適配層早期版本并不支持代碼里不寫降級界面上就是干巴巴一個平面。我最后統(tǒng)一抽了個Card組件內(nèi)部做平臺兼容判斷業(yè)務(wù)層不用關(guān)心細(xì)節(jié)。6.3 我踩過的兩個關(guān)鍵坑第一個坑是數(shù)字鍵盤調(diào)起后中文輸入法還是能輸入字母。孩子做題時切到手寫輸入法TextInput 拿到的是“三”而不是“3”Number(三)返回NaN校驗(yàn)直接判錯。這個問題的根子在鍵盤類型只影響“彈出的面板”不影響輸入法引擎。我最后的處理是校驗(yàn)時只接受數(shù)字字符串檢測到非數(shù)字字符立即清空并提示“請輸入數(shù)字”。這個方法看著暴力但對低齡用戶其實(shí)最有效因?yàn)殄e誤輸入被即時糾正了。第二個坑是提交按鈕快速點(diǎn)擊導(dǎo)致一次答題被記錄兩次。原因很簡單點(diǎn)擊提交后 setState 還沒觸發(fā)重渲染按鈕一直處于可點(diǎn)擊狀態(tài)第二次點(diǎn)擊進(jìn)來時當(dāng)前題還是同一道答案被重復(fù)記錄。解決辦法是在提交入口加一個短鎖提交后立刻把按鈕disabled置為 true同時用一個 ref 記錄isSubmitting直到當(dāng)前題索引變化后再恢復(fù)。這個問題的排查過程也提醒我RN on OpenHarmony 的重渲染時機(jī)和 Android / iOS 略有差異不要完全依賴 UI 狀態(tài)做并發(fā)控制。最后再說一個個人心得數(shù)字和引號之類的小問題在 iOS / Android 上可能影響不大但在新適配平臺上都會更容易暴露。不要假設(shè)某個交互在當(dāng)前平臺表現(xiàn)正常一定要在真機(jī)上按真實(shí)用戶操作路徑完整跑一遍尤其是鍵盤、觸摸、焦點(diǎn)這類和系統(tǒng)強(qiáng)相關(guān)的交互。數(shù)學(xué)練習(xí)這個項(xiàng)目做完我最大的收獲不是 RN 代碼本身而是學(xué)會了把所有“跨平臺想當(dāng)然”都當(dāng)成風(fēng)險來處理。這個項(xiàng)目后續(xù)還可以繼續(xù)擴(kuò)展的方向很多比如把錯題本導(dǎo)出成本地報告、增加多用戶切換或者加入語音聽題功能。如果你們也在做類似遷移建議保持耐心先把最小功能完整跑通一遍再逐步疊加能力。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
91一起操| 超碰欧美| av操操不卡| 免费无码国产精品v片在线观看| 亚码人妻| 激情第四色| 欧美人人曰人人操人人射射| 97久久久久久久久久| 免费国产| 黑人与人妻| 丁香五月婷婷五月| 五月婷婷AV| 97超碰色| 青青草大香蕉视频| 99热这里都是精品| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 亚洲有薄码区日本系列中文字幕| ?亚洲伊人伊成久久人综合网| 亚洲精品少妇| 99rre在线精品99re8| 用力操死我| 超碰人人超在线观看| av网站国产主播在线| 亚洲资源网| AND人妻系列| 午夜福利国产欧美日韩夜夜| 欧美姓爱综合网| 传媒免费一区二区三区| 日产国产精品中文久久婷婷| 婷婷午夜| 综合久久欧美| 搡老人老9丨女老熟人| 91黑人狂躁丰满熟妇| 肥臀熟女福利视频一区二区| 嗯嗯啊啊视频在线看| 日本成人电影资源网| 成人免费性爱视视| 日本精品中文字幕视频| 亚欧无码线免费观看视频| 亚洲资源一区| 天天热精品| 91狠狠综合| 人妻夜爽夜夜爽| 亚洲的天堂网| 97操综合| 亚洲狠狠入| 天堂av最新电影网| 中文熟女五十乱码在线| 青青草色插素人| 三级片大波波| 性爱AV天堂| 久久超碰av在线| 日韩精品大香蕉伊人在线| 超碰79人人乐| 黑人中出21连凳花野真衣| 2001天天操| 嗯嗯嗯啊啊啊在线免费观看| 日韩人体偷拍| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 成人精品一区二区三区| 素人无码中文字幕| 天天看高清麻豆| 亚洲国内精品成人不卡| 夜夜 中文视频rt| 男人天堂久久日韩| 欧美性生活内射| 日韩欧美天天爽爽爽天天爽爽| 91欧美丝袜| 四虎免费在线播放| 亚洲精品三区在线观看| 日韩欧美综合激情| 久热9| 人妻久久久久久| 色色五月婷婷| 色av中文字幕| 亚洲综合影片| 亚洲情色 无码专区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 欧亚在线视频| 国产后入精品| 啊啊啊啊啊啊啊啊要喷了| 五月天亚洲网| 麻豆久久一区二区三区| 97天天综合| 精品人体无圣光凹凸| 青青久久手机线视频| 无遮挡h肉动漫在线观看| 日本狠狠干| 国产乱婷婷精品二区三区| 亚洲情色一区二区三区| 日韩一级二级三级| 午夜乱轮操逼视频免费看| 日韩欧美成人性爱在线| 综合色色网| 午夜一区| 热热色国产一二区AV| 一中国女人毛片水真多| 免费啪啪啪网站18岁| 日本免费不卡二区| 国产肏屁眼视频| 91精品操美女| 人人看欧美性爱| 久久草草欧美精品| 欧美亚洲成人在线一区二区三区| 91丨豆花丨熟女| 熟女突然公开看18禁影片| 夜夜操夜夜爽夜夜高潮| 正宗无毛一线天嫩逼| 成年人网站在线免费观看| 人人天天干干| 亚洲国产青青| 84YTCOM性无码| 日韩啪啪视频| 国产不卡的视频 | 成人免费不卡在线视频| 超碰成人免费| 97久久超碰亚洲| 成人性爱电影一区二区| 搡老女人老熟女91| 好屌色综合| 丰满的三级少妇欧美久久久| 综合九九| 丁香五月性爱| 欧美人与性动交a美精品| 亚洲猛交| 97狠狠| 天天综合欧美综合| 天天插天天插| 国产无套粉嫩白浆在| 手机在线大香蕉| 亚洲中文字幕妇伦久久| 91九色网| 国产精品久久成人免费| A 在线网址| 清纯唯美亚洲| 免费AV中文网在线观看| 性色综合网| 国产女人操逼视频| 黄色免费网页无码| 久久中文色图| 丝袜夫妻自拍| 中日无幕一二三四区| www…国产操逼| 国产亚洲欧美每日在线| 国产高清亚洲日韩一区| 熟女高潮精品一区二区| 狠色婷婷久久一区二区三区_| 在线啊啊啊啊| AND人妻系列| 欧美性天天影视| 日本久久99| 六月色色| 国产性刺激| 久久久久国产亚洲一区欧美色图日韩| 一本道综合色图| 亚洲综合小说另类图欧美视频激情小说色五月天| 妇女性内射冈站HDWWWCOM| 国产精品久久久啊| 妇女性内射冈站HDWWWCOM| 九九人妻| 嗯嗯嗯啊啊啊干死我吧| 天天操妹子| 久久伦理视频久久大香蕉视频| 日本久久999| 任你干在线视频| 精品国产72| 综合激情一一91| 极品美女嘿咻| 大香蕉一区二区在线观看.| 青娱乐国产盛宴视频| 亚洲AV无码成人精品久久| 99超级碰免费视频| 91啪9色| 亚洲老司机123专区| 狠狠狠一区二区三区| 欧美 日韩 婷婷 五月| 日韩久草| 久久亚洲中文字幕视频| 亚洲性爱高潮影院| 久久成人东京热人妻| 囯产精品久久久久久久久久梁医生 | 毛片17S| 亚洲 欧美 日韩另类 麻豆| WWW操逼| 国产精品乱人伊人网| nuu12国产麻豆精品| 免费精品人妻一区二区三| 麻豆黄四叶草网站| 亚洲日韩在线a不卡99精品| 首页亚洲国产高跟丝袜诱惑视频| 另类欧美| 中文字幕五区| 9999久久久久| 91观看 国产白丝| 色婷久久| 强奸乱伦AV一天堂网| 99久久久无码| 老熟妇一区二区三区…| 色一射色一射| 中文啪啪视频| 日韩一区二区精彩视频| 亚洲天天影视色综合| 欧美日日操| 狠狠干2020| 久久女婷| 日韩欧美成人综合在线| 欧美同性恋 的搜索结果 - 91n| 国产小视频91| 国产精品爆乳懂色蜜乳| 天天噜| 欧美亚洲激情小说| 色偷综合| 欧洲无码一区二区| 国产成人午夜视频网址| 欧美日韩人妻精品系列一区二区三区| 大香蕉伊人色偷偷在线| 日韩一级特黄av毛片| 蜜臀99精品国产高清在线观看| 在线观看十八禁| 中文字幕日韩人妻视频一区二区三区 | 亚洲AV秘无码一区..| 97超碰人操| 精品大久久| 蜜乳av首页| 欧美黄色大片在线观看| 视频国产精品未满十八禁止在线观看| 日本三级精品| 免费视频观看60秒| 激情久久日韩精品中文字幕麻豆| 免费农村成人少妇人妻Aa一区二区视频 | 97中文天堂| 人人看人人摸人人色| 中文字幕AV乱伦| 天天色欧美| 蜜臀99久久精品| a人片中文字幕一区二区| 混色激情av| 欧美色图天堂在线| 中文字幕啊啊啊在线观看视频| 亚洲色图欧美色图日韩色图| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 国产精品对白自产拍| 亚洲视频一二区| 岛国AV一区二区电影| 精品妇女一区二区三区| 日韩无码AB| 俞拍久久国应视频| 欧美少妇高潮久久91| 殴美性色a级欧美| 九九热九九热| 九九玖玖精品| 欧美在线视频播放| 丝袜视频网国产90| 国产伦精品| 久久尹人大香焦视| 国产一级内射无挡观看| 日韩欧美中文日韩欧美色| 日韩无码黄色片| 去干网最新版| 国产夫妻一区二区| 亚洲图片 激情小说| 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 性色av网站| 亚洲欧洲网站免费观看| 国产AV天美| 亚州九九九精品视频| 国内一级精品| 搡老人老9丨女老熟人| 色五月大香蕉| 国产一| 91搡老女人老妇女老熟女歌词翻译| 日韩欧美日韩| 久久午夜伦| 无毛精品| 巨爆乳一区二区爆乳区| 五月婷婷丁香六月| 欧美综合色综合| 日本一级特级毛片视频| 另类在线| 夜夜久久久| 久久毛卡| 国产情色第一第二页在线观看| 日本大香蕉综合网红本杳社区| 91亚洲黑人| 美女诱惑一区| 人妻一区视频| 天美传媒av在线| 欧美Ⅴ性爱| 一个人在线看的黄色电影网站| 国内精品久9| 操逼操网| 骚熟女AV网| 一起草日韩| 亚州色图片在线色| 久久草在线综合视频| 欧美 日韩 婷婷 五月| 国产美女自拍AV| 色盈盈影院| 熟妇的味道HD中文字幕| 乱久久久| 91色久| 中文字幕免费在线观看| 一本久道久久综合狠狠爱| 啪啪啪男女亚洲中文字幕99| 丁香五月色| 97在线视频观看| 色眯眯射| 大地资源在线观看中文第二页| 中出20p| 天天日天天操心| 男女日B国产| 精品人妻一区二区三区视频| 丁香五月影院| 国产女人和拘做爰视频| 午夜精品久久久久久久第一页按摩| 久久久久久欧美精品se一二三四| 欧美欧美啪啪视频| 啊啊啊 在线| 欧美色图亚洲色图成人在在线| 国产精品一区av在线| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 国产网红精品| 97国产高清视频在线观看| 好爽视频在线观看视频| 天天看天天日| 亚洲一区中文精品| 色九久| 免费一级黄色录像影片| 人妻天天夜夜爽一区二区| 天天综合中文字幕 91| caopeng97| 欧美日韩午夜精品一区二区三区| ...日韩成人一区二区三区字幕| 操人91| 男人的天堂2018| 亚洲男人的天堂AV| 九九黄色网| 三男一女不戴套的A片| 久草在| 五月激情啪啪| 午夜乱轮操逼视频免费看| 熟妇高潮二区三区| 久久25| 伊人久久大香大香线蕉中文| 凹凸视频在线一区二区| 久久99干一本高清| 操亚州| 日韩啪啪啪啪啪| 国产自产自拍| 五码视频在线观看| 91骚熟女| 久操免费观看| 欧美第一页| 你草精品在线视频| 91 亚洲 欧洲| 亚洲精品视频在线播放| 青娱乐久久艹| 色欲无码人妻日韩欧美精品| 日韩一级欧美一级国产一级台湾 | 久久久免费高清中文视频| 97青娱乐超碰久久| 色一射色一射| 97色在线观看| 欧洲中文字幕| 丝袜美腿欧美| 中文字幕啊啊啊在线观看视频| 奇米四色影视777久久久| 2017av无码免费无线播| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 久久亚洲欧美中文字幕国语| 热无码中文亚洲H一道本一区二区| 97干在线视频| 国产97色在线| 校园激情狠狠四射| 啊啊啊啊无码| 中文字幕三四五区| 91天天| 国产97色在线 | 亚洲| 欧美人妻一区二区| 另类欧美| 欧洲站一级二级三级h| 中文幕97| 精品小视频在线| 国产大片精久久久久久| 国产有码一区| 精品一区96| 日韩伦理视频| 欧美成人亚洲精品| 爱欲AV| 亚洲中文字幕日产无码久久| 久久国模av| 91l欧美在线| 91色色综合| A男人的天堂| 中文字幕在线2| 操淫穴亚洲五月丁香 | 亚洲人人夜夜澡人人爽| 欧美在线第五页| 欧美草草| 91 丝袜在线播放| 亚洲āv网址在线观看| 亚洲天堂精品日韩电影| 狠狠操官网| 自拍大香蕉乱插| 国产在线视视频有精品| 久久婷婷五月天| 日本 成 人 小说 电影 一区二区| 人妻天堂综合网| 情色五月天久久久| 日日干夜夜骑| 啊啊啊啊好多水| 日本精品中文字幕视频| 国产AV激情无码久久无码 | 日韩美女久久一区二区三区| 欧美熟女妇同| 久久久96精品| 免费看黄片现成| 国产操偷| 天天添天天干电影| 九九九九九九九九九五码| 国产成人啪一区二区| 丝袜足交视频| 色狠狠 - 百度| 亚洲欧洲网站免费观看| 天天弄欧美| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 精品中文字幕一区二区| 色色五月丁香| 国产亚洲日本| 国产又黄又粗又猛大片| 自拍偷拍 日韩无码| 亚洲熟女一区二区| 久久国产在线一区二区| 国产免费一区在线观看| 日韩电影天堂视频一区二区| 狠狠爱夜夜| 午夜.DJ高清在线观看免费7 | 麻豆亚洲AV成人无码久久精品| 欧美性爽xyxOOOO| 欧美在线观看综合国产| 天天插天天操天天摸天天射天天看| 欲香欲色综合天天伊人| 国产综合操逼高清| 射丝袜大香蕉| 无码操逼视频一下| 欧美精品人妻视频| 亚州黄站| 欧美日韩国产高清在线一二三区 | 中文字幕 av v| 日韩BBN| 福利社区午夜一区二区| 久久久久七视频| 婷婷久月| 色综合久| 人妻少妇精品久久久久久| av最新免费中文字幕| 久久久久久大| 翔田千里AV无码秘 三区| 亚洲AV无码久久久国产精品| 午夜综合在线| 脫衣舞一区二区三区| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 久久久免费的精品| 久热久操| 乱伦AVxx| 国产精品高朝久久久久久久| 国产一区二区三区视频在线看| 日韩一999精品| 97精品网| 青青草在线视频人人想人人上| 97超碰欧美精品| 可以免费观看的AV| 手机看片1024你懂的国产| 性交一区二区在线播放| 午夜男人av| 欧美影音在线| 91人人臊| 老熟女91视频| 国产精品经典一卡久久久 | 9 9精品一区二区三区| 亚州黄站| 久热伊人99re| 色五天伊人| 色香91| 99热18| 天天综合网网欲色| 97在线观视频免费观看| 色爱三区| 美女诱惑一区| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 夜夜爽爽夜夜精品视频| 国产动漫操逼视频| 久久久无码视频| 欧美成人精品一区二区三区| 九月激情婷婷| 97资源站国产精品| 精品久一区免费| 日韩卡一卡二卡三在线| 清纯唯美综合亚洲| 伊色综合天堂色97| 高潮毛片无遮挡高清免费| 98福利在线视频| 十八禁啪啦拍视频无遮挡| 亚洲成人ab| 日韩精品人妻中文字幕久久久| 亚洲高清无码在线桃色| 啊啊啊啊啊好多水| 99热 按摩 日韩| 成年女人18级毛片毛片免费观看| 日本精品五区| 999 久久久| 全免费a敌肛交毛片免费| 大香蕉草草| 久久一二三四不卡| 日韩AV熟女乱伦| 蜜臀无码视频在线观看 | yiqicaoav| 亚洲黄a三级三级三级看三级| 99久re热视频精品98| 中文字幕一区二区三区50路| 97就爱干| 天天日日日射| 九九黄色视频在线观看| 国产美女销魂在线观看不卡| 51一区二区三区| 激情文学欧美| 91neishe| 欧美强奸乱能| 99老司机精品视频在线观看| 在线中文字幕视频| 久久久精品中文字幕麻豆| 亚洲情色婷婷五月天| 美女熟妇色| 精品午夜福利| 老熟女综合网| 亚洲色悠悠久久88| 九九热超碰97亚洲最新香蕉 | 日韩欧美传媒一区国产| 欧美影音在线| 精品久久大胆人体| 中文字幕一区 二区三四五 区日 日骚| 日韩 欧美 另类 人妻| а√天堂资源官网在线资源| 欧美se综合| 亚洲AV色图一区| 99热91| 一区二区三区黄片免费观看| 涩涩涩综合| 久久男人天堂| 男人天堂网站| 色综合加勒比| 天天噜| 色综合91好| 78m啪啪啪| 69丨亚洲丨精品丨入口免费播放| 97一区二压| 91逼逼女人91| 久久婷婷在线观看视频| 97大色网| 九九九久千久久激情蜜桃在线看| 国产av青草| 精品国产污一区二区三区| 桃色五月天| 韩国久久97| 国模限制级电影| 国内外色色色色色成人视频| 亚洲色图大香| 九九九综合精品| 亚洲城人男人的天堂| 91在线色综合| 蜜桃视频精品一区二区三区| 久久久久久久一级黄色打同平台| 日本不卡高清免v欧美日韩在线观看| 婷婷亚洲天堂| 日韩AV一区二区三区四四| 欧美精品四区| 久久色一区| 69AV女优男人的天堂| 75大香蕉| 97精品综合久久网| 少妇熟女视频一区二区三区| 亚洲 欧美 日韩另类 麻豆| AV色五月| 久夜视频| 成人性爱av| 美女被艹尤物视频| 丁香六月综合激情| 不卡在线一区,精品一区二区三区中| 精品人妻1237| 日韩中文字幕2020| 狠久久| 97亚洲综合影院| 91AV入口| 女人高潮大叫一级毛片| www.狠狠操| 久偷拍| WWW美腿丝袜香蕉中文| 国产欧美岛国精品一区| 久久99综合| 宅男91视频在线播放| 中文字幕人乱码中文字的预防方法 | 欧美经典一区二区三区| 最近2019中文字幕国语免费版| 亚洲av无线观看| 偷拍网站久久男女男| 亚洲 欧美 另类 日韩 人妻一区 | 亚洲成人一区二区精品| 精品国产精品一区二区| 嫩草伊人久久精品| 在线电影亚洲色图| 精品亚洲一区在线观看| 强奸乱伦动态污图免费| 男人的天堂2018东京热啪啪啪| 日韩丝袜高跟制服在线观看| 欧美精品激情| 特级毛片特黄久久免费看| 久久久九97| 91 丝袜在线观看| 中文字幕久久婷婷丁香五月天| 久久久久久国产精品免费网站| 99re这里只有精品中心播放 | 另类老少妇| 人妻一二三区| 又黄又爽在线观看视频| 国产农村妇女精品1区二区| 人人妻人人爽人人精品| 精品毛片av一区二区| 久久国产三区| 国产91丝袜在线播放蜜月| 特色a在线上| 欧美成人一级免费电影| 中日高清无码操逼视频| 伦在线97| 丰满人妻一区二区三区四区| 91在线视频观看国产| 五月天春色激情网| 欧洲亚洲人妻无码高清久久三区四区| 亚洲97久久精品亚洲| 91美腿丝袜在线观看| 亚洲色阁| 精品国产精品一区二区| 大香蕉淫人| 超碰人人超在线观看| 97干天天| 小日子操bb在线看| 亚洲高清视频在线观看| 精品国产三级av韩国在线| 激情五月激情综合网| 少妇大屁屁| 亚洲欧美国产其他二区| av东京热男人的天堂| 亚洲国产奇米影视久久| 午夜精品久久久99| 亚洲欧美在线观看无码| 超碰色中文| 香蕉热人人精品| 久久久久一本一区二区青青蜜月| 91丝袜在线观看| 蜜臀AV一区二区三区激情综合| 91啪啪| www.操| 国产精品无码成人精品| 一区麻豆 高清中文字幕| 18禁在线视频| 欧美熟女妇同| AV免费在线播放一区| 97视频在线视频| 久热九九| 日本天天干天天操一区| 久久午夜伦| 中日韩免费看男女操逼大全| 中文字幕视频2区| 2017人人操,人人摸| 久久鲁夜| 日本女人操逼| 国产精品不卡高清在线观看| 色大香蕉97N| 乱伦熟女区| 色婷婷国产精品一区在线观看| 亚洲aw毛茸茸在线| 岛国视频免费在线观看| 夜夜嗨TV| 91视频成人福利网站在线一区| 思思视频免费看网站| 二级毛片| 红杏大香蕉| 亚洲国产一级黄色视频| 公司1区2区3区精产精| 中文字幕av乱伦| 国产 日韩,欧美 自拍| 91艹逼精品| 自偷自拍的亚洲视频| 性91| 久久综合av| 99热这里是精品| 农村女一级毛卡片| 天天综合网亚洲综合网| 美女黄色一级A视频| 午夜性| 嫩草影院在线观看精品 | 91社区拍啪人妻| 97 色综合| 欧美视频激情久久久久久| 成人综合久久精品色婷婷| 免费a v| 91模特在线观看| 人妻密肉在线观看| av九九| 黄色香蕉视频网站一区| 夜夜骑天天燥| 国产suv精品一区二区四| 福利视频一区二区微拍| 人人性爱视频免费| 青青草五月份天| 久久国产精品熟女人妻| 一区二区日韩欧美久久| av日韩手机在线影视| 综合久久97| 欧美碰碰综合色| 亚洲天天影视色综合| 黄片在线免费在线观看| 最新中文字幕精品在线| 久久大黄片| 精品九区| 亚欧操逼片在线观看 | 久久午夜神马| h色99999| 老女人碰碰在线碰碰视频| 五月丁香在线| 激情久久久| 操我无码| 免费啪啪一级视频| 一本色道综合久久欧美| 白丝AV| 日韩欧美女求操每天更新| 日韩精品三级片长长久久| 久久有碼| 综合亚洲情色| 97 视频在线| 国产精品久久久久久夜夜夜| 91扒丝袜综合在线| 婷婷色一区| 美女露胸露奶头| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 78操B| 美女天天干| 亚州九九九精品视频| 人妻熟女一区二区| 久草精品一区| 操逼无毒无码免费视频| 波多野结衣AV无码一区| 午夜男女爽爽大片免费观看| 91九九| 国产精品福利资源在线尤物| 日本精品一区二区三区四区的功能| 天天拍夜夜| 78精品| 国产精品美女视频诱惑| 天天综合91| 无码人妻精品一区二区三区99不卡| 青草综合| 日小BB小视频| 视频黄色国产一级| 巨爆乳肉感一区二区三区竹菊影视 | 日本一区二区不卡精品| 大色综合网| 一区二区三区四区色图| 亚洲色图超碰在线| 96免费视频在线| 九九九九九用不成了| 后入式999| 欧美热图99| 国产免费黄色一级大片| 中文字幕一区二区三区字幕| 欧美系列在线一区二区| 日韩中文字幕二区| 欧美黄色图片| 国产欧美黑人丰满在线| 91亚洲网站| 激情综合网激情综合| 国产曰批免费观看久久久| 日本视频在线观看污污污| 五月婷色| 国产精品 午夜福利| 超碰 国产熟女精品一区| 又黄又硬又粗又长国产视频| 伊人网青青| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 国产一区二区三三视频| www.人人cao| 狼人综合婷婷激情四射| 东方亚洲在线操逼天堂| 日韩精品 欧美激情| 国产日韩色综合| 去干网最新版| 97干天天| 欧美性爱一区二区三区| 免费看黄视频亚洲网站| 亚洲成人免费电影| 亚洲综合九| 伦理第一页| 欧美东京热精品A∨| 五月天综合| 啊啊啊啊啊啊啊在线| 丁香五月天激情| 神马久久网| 国产精品日日摸天天碰| 国产亚洲精品av一区| 五月婷婷激情| 亚洲天堂久久| ji熟女.com| 国产又爽又黄| 欧美综合传媒| 九九九九九九九九九九九免费国产| 久草精品一区| 男人高清无码一区二区| 色婷婷综合久久中文字幕雪峰| 91亚洲色图| 欧美日韩国产中文超碰| 91视频精品| 色哟哟-国产专区| 肏逼视频日本| 欧美性暴力猛交XXXX| 一级日本牲交大片好爽在线看| 欧美三级一级| 亚洲成人av电影在线| 中文字幕-区二区三区四区视频中国| 亚洲春色一区二区三区| 99精品网站| 日本肉体xxxx裸交| 少妇久久| 精品无码一区二区人妻久久蜜桃| 午夜无码精品免费看性色| 欧洲性人爱视频| 极品白嫩福利在线| 性爱边摸边日免费AV| 久久久精| 色色99| 五月天激情小说网| 老司机午夜精品视频| 91女优在线观看| 五月丁香婷婷啪啪| 无码最新| 亚洲āv网址在线观看| 精品一区二区久久| 日韩成人色图| 午夜色婷婷| 国产丝袜视频| 国产日韩精品无码去免费专区国产| 亚洲熟女乱综合一区二区三区| 激情久久久| 人妻81p| 91伊人久| 97 色综合| 理论久久婷婷网8| 91 丝袜在线观看| 亚洲免费精品一区| 在线观看AV不卡| 亚洲婷婷五月天| 欧美在线播放aaaa| 五月丁香拍拍激情综合三级| 亚洲h片在线免费观看| 亚欧高清| 欧美黄色手机在线观看| 91被操| 日韩av电影成人在线| 超碰免费人妻人人| 国产三级资源在线观看| 偷拍 欧美 日韩| 男人精品区| 精品综合久久久久久五月天| 在线a亚洲视频播放在线| 97啪啪| 日本国产亚洲一区在线观看| 少妇一级婬片免费放一级a性色. | 亚州欧美色图| 一级二级三级黑人无码| 国产一区二区三区视频在线看| 国产一级特黄大片处女| 岛国大片国产| 日韩无码专区| 蜜桃精品一区二区三区ww| 9精品在线| 蜜桃午夜视频一区二区| 九九碰九九爱97超| 探花在线免费观看视频国产一区| 丁香五月婷婷啪啪| 一区二区乱码福利| 成人小说视频在线精品欧美| 熟女突然公开看18禁影片 | 综合网欧| 国产精品白丝AV| 波多野结衣一级视频| 狠狠色综合网| 97精品国产精品免费观看| 五月天日日操夜夜操| 免费视频在线一区二区不卡| 日本片日本片祼观看网站在线看中文版网页在线看 | 久热精品在线| 欧美性xxxxx狂欢| 丁香五月天激情综合| 成人精品一区二区三区| 欧美Ⅴ性爱| 天天插天天射| 亚洲中文字幕av | 4虎在线视频| 欧美精品二区视频在线| 久久老子无码午夜伦不卡| 操亚州| 国产精品亚洲天堂网址| 亚洲色图欧美色图制服丝袜| 精品无码秘 人妻一区二区| 色哟哟的毛片| 91色香| 欧美性猛交美女自慰91| 亚洲美女精品九九视频| 长长久久88视频| 九t超碰| 色噜噜狠狠色综合日日| 久久久月天| 91中文在线| 欧美人与动性人交a| 91视频成人福利网站在线一区 | 国产sv美女内射| 欧美亚洲日本激情在线| 91日韩网站| 麻豆国产免费影片| 风韵犹存大大大大香蕉| 精品久久久久9999| 日韩色欲久久一二三四区| 色偷偷2020免费视频播放| 99热最新| 日本人妻中文字幕| 久久亚洲日韩熟女精品| 97青青操视频| 最新日产中文在线麻豆| 色九久| 午夜毛片高清免费不卡| 91站街按摩店老熟女熟女| 欧美精品成人一区二区在线观看| 97免费视频在线观看视频| 日本天天操| 93人人操人人| 国产成人久久精品蜜臀| 干美女人妻| 丝袜视频一区二区在线播放国产中文| 久久久精品成人国产| 日韩综合成人免费视频| 天美传媒婬乱| 1024精品在线| 综合av影片| 蜜臀久久在线视频| 色眯眯射| 日日干夜夜操视频h| 99超碰色| 日本三级大片| 色情成人五月天| 丁香婷婷久久| 成人性爱电影网| 影音先锋国产精品| 日本操大逼| 97人人操人人摸| 国产特级毛片AAAAAA高潮流水| 午夜国产成人精品视频| 97视频在线播放| 精品少妇高潮久久| 狠狠97| 亚州欧美在线| 偷拍 亚洲 欧美| 日韩人妻无码专区| 五月婷婷综合网| 亚洲人成网www| 日韩国语字幕| 自拍视频大全亚洲专媒视频/一区二区三区 | 黄片www视频免费| 影音先锋少妇| 人妻少妇av在线观看| 婷婷91| 国产一区二区三区不卡手机在线| 亚洲天堂另类小说男人| 日本丝袜美腿人妻九九| 欧美一区二区三区成人性生活| 91日韩网站| 大香蕉一级黄色片久久| 国产无码精品成人| 亚洲欧综合另类无码一区| 大香蕉伊人久久| 无码人妻丰满熟妇奶水区毛片| 精品小视频在线| 亚洲国产97在线精品一区| 亚洲欧洲成人在线电影| 亚洲中文字母在线播放| 97久精品| 综合熟妇一区二区三区| se吧提供91精品国产91久久久久久 | 伊人久久婷婷| 97bbn| 翔田千里AⅤHD无码| 日韩人妻资源在线看| 亚洲熟久久| 日韩黄色片子| 97免费在线视频在线观看| q2午夜理论片夜色av| 日韩精品一区二区日韩| 伊人97色天使| 国产在线综合网| 亚洲精品97在线| 91激情| 中文字幕av色| 好涩综合| 亚洲天堂区| 国产美女高潮| 麻豆天美国美国产| 国产精品播放| 97国产色综合| 久操精品网| 精品少妇一区二区三区| 日韩av乱伦| 亚洲天堂男| 日韩 人妻 精品| 成人五月天丁香激情综合| 青青草视频在线观看一区二区| 2017av无码免费无线播| 久草精品热视| 少妇无码av专区线| 91精品婷婷国产综合久久| 无码自拍SM| 香港澳门日本三级网站| 成人天天看站长推荐| 亚洲国产精品无码AV在线| 97ai亚洲| 久九干| 极品白嫩美女白浆成人福利在线看| 97人人夜| 日韩图区| 日本不卡高清免v欧美日韩在线观看| a片久久久久久久久久久久| 亚洲情色一区二区三区| 五月婷婷丁香六月| 香蕉久久AⅤ...| 成人怡红院| 亚洲图片偷拍欧美| av操操不卡| 激情丁香五月| 日韩婷婷| 亚洲无吗在线视频| av黄图片在线观看| 伊人久久AV诱惑悠悠| 欧美性生活内射| 激情久久av一区av二区av| 一级AV性爱| 久久同城AV| 久久97资源 网| 久久99国产综合精品女同| 99久久精品国产高潮| 亚洲一区操| 亚洲春色欧美激情自拍| 美女诱惑久久| 麻豆精品.欧美精品.日韩精品.| 久久久精品视频欧州站| 国产精品色哟哟| 大香蕉欧美伊| 青青草视频导航官网| 国产怡红院| 秋霞男人网| 久久大陆| 91处女在线视频| 欧美日韩国产色五月综合在线| 亚洲少妇激情一区二区三区| 97视频在线视频| 夜夜春夜夜操| av网站免费看| 96久久精品一二三区色欲| 亚洲砖码砖专无区2023| 日韩婷婷| 九九性爱网| 亚洲18禁| 天天操天天7| 欧美综合自拍亚洲综合图| AV天堂因数| 变态乱伦伪娘灌肠一区二区| 欧美色视频在线| 大香蕉久久| 乱久久久| 一区二区三区麻豆| 蜜乳AV.COM| 男人的天堂2010| 欧美综合网1| 91情色| 久久人妻精品| 小骚逼被操的爽不爽| 女生看匆91网站| 久久亚洲AV无码专区首页| 91青视频| 青青草依人大香蕉| japan日本高清乱xxxx| 看黑人AV不卡| 好爽免费视频,| 色视频蜜乳| 色婷婷aV一区二区三区麻豆综合| 午夜精品人妻二区三区| 国产精品视频自拍在线| 国产视频一区二区在线观看| 国产一区在线播放| 国产67194| 久久黄黄黄| www.国产高潮精品| 国模91| 无码乱人伦中文视频| 国外91| 九九精品99| 粉嫩AV一区夜夜嗨| 欧美极品性爱天天射| 78久久久| 亚洲精品无码成人久久久99| 在线亚洲丝袜视频网站| 黄色网址在线免费观看| 97爱欧美| 操逼天美3区| 国产精品乱码久久久、久久| 久久精品国产亚洲AV嘿嘿| 青青草狠狠撸| 91麻豆va国产精品| 国产99热| 欧美中字二区| 亚洲福利中文字幕在线| 人妻丝袜美腿中文字幕| 99国产精品在线观看| 自拍偷拍亚洲熟女妇人精品| 综合色久欲| 国产欧美日韩女同性恋ww喷水精品 | 久久久久久99999国产精品| 丁香五月天堂| 国产一区二区免费福利片| 人妻大香蕉| 人妻夜夜爽天天爽麻豆三区网站| 日本熟女不卡视频| 欧洲一区二区| 亚洲视频二区| 你懂得91| 97精品熟女少妇一区| 九久精品| 五月天人妻综合| 亚洲综合网图| 女优免费一区二区永久| 1769一区二区| 在线观看中文字幕| 日韩专区久久久| 欧美国产有色电影| 67194无码不卡| 26uuu国产日韩综合在线观看| 九九热精品视频六| 国产成人主播| 久久色激情一区二区三区| 97精品熟女少妇一区| 欧美综合网在线| 校园春色 亚洲| 加勒比海人人操超碰在线| 岛国不卡超碰护士AV在线播放| 91色噜噜狠狠|