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

ARTICLE DETAIL

資訊詳情

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

鴻蒙化Flutter插件適配實(shí)戰(zhàn):從MissingPlugin到鏈接預(yù)覽卡片

鴻蒙化Flutter插件適配實(shí)戰(zhàn):從MissingPlugin到鏈接預(yù)覽卡片 前陣子接到一個(gè)需求鴻蒙版應(yīng)用里聊天窗口和內(nèi)容信息流都要支持粘貼鏈接后自動生成富媒體摘要卡片。Flutter 側(cè)主工程之前用了 simple_link_preview 這個(gè)三方庫在 Android 和 iOS 上跑得很順換到鴻蒙后卻直接報(bào) MissingPluginException。原因不復(fù)雜——simple_link_preview 的原始工程只提供 Android 與 iOS 的原生實(shí)現(xiàn)并沒有注冊鴻蒙側(cè)的平臺通道。所以擺在我面前的路就很明確要么在業(yè)務(wù)層另寫一套抓取邏輯要么把這個(gè)庫的鴻蒙化適配補(bǔ)上。最終我選了后者。這篇文章就是這次適配的完整復(fù)盤從抓取原理到鴻蒙側(cè)實(shí)現(xiàn)再到各種兼容性坑盡量把可以直接抄作業(yè)的細(xì)節(jié)都寫出來。1. 為什么社交應(yīng)用需要鏈接預(yù)覽以及為什么值得做鴻蒙化1.1 鏈接預(yù)覽給體驗(yàn)帶來的改變用戶貼出鏈接時(shí)如果只是顯示一長串 URL閱讀成本很高。有了卡片預(yù)覽用戶能看到標(biāo)題、描述和主圖點(diǎn)擊的意愿也明顯更高。在聊天場景里這還能起到“預(yù)確認(rèn)”作用避免用戶誤點(diǎn)不明鏈接。在內(nèi)容社區(qū)里側(cè)邊欄分享、文章聚合都依賴這種卡片。可以說鏈接預(yù)覽已經(jīng)從“加分項(xiàng)”變成社交與內(nèi)容應(yīng)用的底線體驗(yàn)。我做過一個(gè)小改動后對比信息流內(nèi)鏈接點(diǎn)擊率翻了不止一倍。這也解釋了為什么我們會在一開始就引入 simple_link_preview它把抓取、解析、展示三件事封裝成一套 Flutter 組件業(yè)務(wù)側(cè)只需要丟一個(gè) url 進(jìn)去。對多端團(tuán)隊(duì)來說這種可復(fù)用性非常值錢。原來在 Android 和 iOS 上只要在 pubspec 里加依賴、調(diào)用 LinkPreview 組件就能在聊天列表、帖子詳情、私信會話里展示標(biāo)準(zhǔn)鏈接卡片。團(tuán)隊(duì)內(nèi)部不需要關(guān)心 OpenGraph 協(xié)議細(xì)節(jié)也不需要維護(hù)一堆正則表達(dá)式。鏈接預(yù)覽的另一層價(jià)值是“信息可信度透出”。用戶在點(diǎn)擊外鏈之前可以從卡片上看到來源域名可以有效防范釣魚鏈接。因此我們在做鴻蒙適配時(shí)不只是把抓取功能搬過來還要保證域名、圖標(biāo)、標(biāo)題這些信任元素完整渲染出來。一旦有一個(gè)頁面抓不到標(biāo)題整張卡片就會變成一堆無意義的網(wǎng)址用戶心里下意識會覺得產(chǎn)品不夠?qū)I(yè)。1.2 鴻蒙化適配的真正難點(diǎn)很多人以為適配無非是改網(wǎng)絡(luò)庫其實(shí)真正的難點(diǎn)是 Flutter 插件在鴻蒙上的生命周期和平臺通道注冊方式不同。Android 的插件類繼承FlutterPlugin并實(shí)現(xiàn)MethodCallHandler鴻蒙的 ArkTS 插件則要處理 Flutter 引擎?zhèn)魅氲腂inaryMessenger再注冊MethodChannel。這兩個(gè)平臺通道協(xié)議并不自動互通必須手動補(bǔ)上。simple_link_preview 的 Dart 層調(diào)用的是它自己內(nèi)部的某個(gè) channel 名鴻蒙側(cè)如果不知道這個(gè) channel 名就無法攔截請求如果知道就可以用同名 channel 接管。所以最省事的路徑是fork 一份 simple_link_preview保留原有 Dart API在原生目錄里補(bǔ)一個(gè) ohos 實(shí)現(xiàn)。這里有一個(gè)選擇自己新建一個(gè)插件用與 simple_link_preview 相同的 MethodChannel 名稱也可實(shí)現(xiàn)“偽適配”。但這種做法要保證兩邊數(shù)據(jù)格式完全一致反而容易在版本迭代后出現(xiàn)字段缺失。我更推薦 fork 后在原生目錄做適配理由很簡單Dart 層不會漂移插件升級時(shí)你只需要并一下原生實(shí)現(xiàn)。鴻蒙側(cè)插件注冊的入口與 Android 差異很大但只要理解了 BinaryMessenger 這個(gè)核心對象剩下的就是按模板填補(bǔ)代碼。2. simple_link_preview 的抓取與渲染鏈路到底做了什么2.1 OpenGraph 與元信息回退規(guī)則這里先明確一個(gè)概念鏈接預(yù)覽不是“爬蟲”它只讀取網(wǎng)頁 head 里的元數(shù)據(jù)。主流社交裂變都基于 OpenGraph 協(xié)議頁面作者會顯式聲明og:title、og:description、og:image。協(xié)議本身很簡單就是一組 meta 標(biāo)簽。真正麻煩的是抓到不符合協(xié)議的老網(wǎng)頁以及各網(wǎng)站字段缺失千奇百怪的情況。所以抓取模塊需要具備回退規(guī)則沒有og:title時(shí)用title標(biāo)簽沒有og:description時(shí)用meta namedescription沒有og:image時(shí)則找一個(gè)頁面里最接近正文的圖片或者退回 favicon。如果連標(biāo)題都沒有那就只能用 URL 本身作為展示文案。這個(gè)回退鏈條需要在鴻蒙側(cè)完整實(shí)現(xiàn)否則卡片很容易出現(xiàn)空白標(biāo)題。舉一個(gè)實(shí)際例子有些論壇頁面標(biāo)題寫在h1里meta description 完全為空og 標(biāo)簽也沒有。此時(shí)最穩(wěn)妥的做法是依次嘗試 og 協(xié)議、普通 meta、title、h1最后兜底返回空字符串。每一層回退都要在代碼里單獨(dú)處理不能把整段邏輯塞進(jìn)一個(gè)正則里。另外圖片字段可能是站內(nèi)相對路徑也可能是協(xié)議相對地址比如//cdn.example.com/cover.png這些都要在原生側(cè)轉(zhuǎn)換成完整可訪問的 URL。2.2 數(shù)據(jù)格式怎么定才不會讓上層 UI 重寫在正規(guī)插件里抓到的數(shù)據(jù)會被抽象成 MetaData 或類似對象。包含至少 7 個(gè)字段url、canonicalUrl、title、description、imageUrl、siteName、videoUrl如果是視頻頁。鴻蒙側(cè)的原生解析結(jié)果應(yīng)該以 JSON 對象返回給 Dart。JSON 的 key 不要隨便起名必須跟原庫 Dart 類字段一致。我們可以把抓取結(jié)果用 Map 返回例如{url: ..., title: ..., imageUrl: ...}。這里有個(gè)經(jīng)驗(yàn)許多適配者直接把 HTML 全部返回給 Dart 層解析雖然可以實(shí)現(xiàn)但性能非常差而且會把原庫的 MethodChannel 協(xié)議改掉。正確做法一定是原生側(cè)完成網(wǎng)絡(luò)請求和初步解析Dart 側(cè)只接收結(jié)構(gòu)化字段。如果是在自己 fork 的工程里做適配可以先看一下原庫 Dart 端的fromJson方法把 JSON 結(jié)構(gòu)一比一對齊這樣上層組件不用改圖片懶加載、緩存策略也不會受影響。3. 鴻蒙化適配的完整落地步驟3.1 插件工程與同名 Channel 注冊我建議的工程結(jié)構(gòu)是把 simple_link_preview 項(xiàng)目克隆到本地作為內(nèi)部維護(hù)分支在 pubspec.yaml 里保留原來的包名同時(shí)增加 ohos 平臺的插件聲明在原生目錄下新建ohos模塊代碼放在entry/src/main/ets/plugins/。如果是新插件橋接步驟如下用flutter create --templateplugin初始化插件然后修改 pubspec.yaml在 plugin 聲明里加入 ohos 平臺。App 側(cè)要引入這個(gè)插件。在 ArkTS 里插件入口需要拿到 Flutter 引擎的 messenger。這里給出最核心的注冊邏輯簡化let messenger: Object context.resourceManager.getContext(); const channel new MethodChannel(messenger, simple_link_preview); channel.setMethodCallHandler((call) { if (call.method fetchMetadata) { return this.fetchMetadata(call.arguments.url); } });老實(shí)說 ArkTS 的具體入口在不同 Flutter 鴻蒙版本中寫法略有差異但核心思路一致拿到 BinaryMessenger 后注冊與 Dart 側(cè)相同的 channel 名再處理方法調(diào)用。無論原 library 內(nèi)部用的是什么 channel你只要在鴻蒙側(cè)聲明相同的字符串就能接管。需要注意的是有些版本的 Flutter 插件是異步初始化channel 注冊時(shí)機(jī)一定要在 Flutter 視圖加載完成之后否則會接收不到 Dart 側(cè)發(fā)來的第一條消息。我在第一次驗(yàn)證時(shí)就遇到“Dart 側(cè)調(diào)用報(bào)沒實(shí)現(xiàn)但代碼明明注冊了”的情況最后發(fā)現(xiàn)是插件入口類沒有被加載需要在鴻蒙的模塊配置文件里顯式聲明插件entry。3.2 鴻蒙側(cè)實(shí)現(xiàn)網(wǎng)絡(luò)請求與 HTML 解析網(wǎng)絡(luò)請求基于系統(tǒng)能力實(shí)現(xiàn)。偽代碼import { http } from kit.NetworkKit; async function fetchUrl(url: string): Promisestring { const httpRequest http.createHttp(); const response await httpRequest.request(url, { method: http.RequestMethod.GET, connectTimeout: 8000, readTimeout: 12000, followRedirects: true, header: [{ User-Agent: UA_BROWSER }] }); if (response.responseCode ! 200) { return ; } return response.result.toString(); }這里有幾個(gè)關(guān)鍵點(diǎn)第一一定要設(shè)置瀏覽器 UA。我實(shí)測過不少內(nèi)容站點(diǎn)會直接拒絕帶 Flutter 默認(rèn) UA 的請求返回 403。第二followRedirects必須開否則短鏈和帶有跳轉(zhuǎn)的鏈接都抓不到。第三超時(shí)不能設(shè)太長卡片等待時(shí)間超過 6 秒用戶就會覺得卡死。我固定用 8 秒連接、10 秒讀取。第四response.result.toString()并不總是按照 UTF-8 解碼頁面如果聲明的是gb2312或gbk這里就會直接亂碼后面解析再多也白搭。HTML 解析不建議一上來就寫巨型正則而是先做簡單的規(guī)范處理把正則設(shè)為忽略大小寫只匹配標(biāo)簽和屬性不要對內(nèi)容做大小寫轉(zhuǎn)換。如下function parseMeta(html: string, key: string): string { let regex new RegExp(meta[^](?:property|name) key [^]content([^]*), i); let m html.match(regex); if (m) return m[1]; regex new RegExp(meta[^]content([^]*)[^](?:property|name) key , i); m html.match(regex); if (m) return m[1]; return ; }正則看起來思路清晰但有個(gè)現(xiàn)實(shí)問題meta 標(biāo)簽的 content 屬性值可能包含轉(zhuǎn)義字符比如amp;、quot;。如果直接把值塞給標(biāo)題組件UI 上會顯示amp;而不是。所以拿到原始值后還要做 HTML 實(shí)體解碼比如替換amp;、lt;、gt;、quot;、#39;。更穩(wěn)的做法是遍歷所有meta標(biāo)簽用字符串截取的方式分別讀取屬性名和 content 值。雖然這樣性能略低但頁面通常只有幾十個(gè) meta完全可接受。3.3 卡片渲染與數(shù)據(jù)裝配拿到元數(shù)據(jù)后回到 Flutter 側(cè)我會用最近流行的卡片結(jié)構(gòu)上面是圖片下面是標(biāo)題兩行、描述一行、來源域名一行。代碼可以寫一個(gè) LinkCard 組件class LinkCard extends StatelessWidget { const LinkCard({super.key, required this.meta, this.onTap}); final LinkMetaData meta; final VoidCallback? onTap; override Widget build(BuildContext context) { return Card( margin: EdgeInsets.zero, clipBehavior: Clip.antiAlias, child: InkWell( onTap: onTap ?? () openUrl(meta.url), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ _buildImage(), Padding( padding: const EdgeInsets.all(12), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(meta.title, maxLines: 2, overflow: TextOverflow.ellipsis), if (meta.description ! null) Text(meta.description, maxLines: 2, overflow: TextOverflow.ellipsis), SizedBox(height: 8), Row( children: [ Icon(Icons.link, size: 14), SizedBox(width: 4), Expanded(child: Text(meta.siteName ?? parseDomain(meta.url))), ], ), ], ), ), ], ), ), ); } }關(guān)于圖片我建議外層用AspectRatio固定比例不要直接給固定高度。原因很簡單每張圖原始尺寸不同直接固定高度要么裁太多要么留白。如果不確定圖片尺寸可以設(shè)置AspectRatio(aspectRatio: 1.91)也就是 16:9 的變形版。加載時(shí)用loadingBuilder做骨架或者灰塊避免圖片加載后卡片高度跳動。加載失敗則把圖片區(qū)域換成一個(gè)小圖標(biāo)或者直接折疊不能讓白色裂圖影響用戶體驗(yàn)。還有一點(diǎn)很多人忽略卡片里的圖片到底由誰下載我的建議是鴻蒙原生側(cè)只負(fù)責(zé)返回圖片 URL不要順手把圖片下載成 base64 再回傳。這樣做會讓 MethodChannel 的數(shù)據(jù)包變得非常大而且 Dart 側(cè)無法復(fù)用ImageCache。Flutter 自帶的Image.network會走 Flutter 引擎的圖片緩存再次展示時(shí)成本很低所以把 URL 傳出來就夠了。4. 適配過程中的坑與排查實(shí)錄4.1 網(wǎng)絡(luò)權(quán)限和明文流量限制鴻蒙應(yīng)用默認(rèn)不允許明文 HTTP 流量類似 Android 9 之后的網(wǎng)絡(luò)安全配置。所以如果你測試的鏈接里有 http:// 老站卡片會一直失敗。在接入方的 module.json5 里要加權(quán)限并配置網(wǎng)絡(luò)安全{ module: { requestPermissions: [ { name: ohos.permission.INTERNET } ] } }如果要兼容 HTTP 明文還需要在應(yīng)用配置文件里打開網(wǎng)絡(luò)安全相關(guān)項(xiàng)具體名字因系統(tǒng)版本而異。但我不建議全局放開最好把需要允許明文訪問的域名加到白名單里。實(shí)際測試時(shí)我遇到的情況是插件本身報(bào)沒有網(wǎng)絡(luò)權(quán)限一開始還以為是解析問題后來才發(fā)現(xiàn)是 entry 模塊沒加權(quán)限。這個(gè)坑屬于接入方配置很容易漏。另外鴻蒙上的網(wǎng)絡(luò)請求不能忽略“沙箱”差異。部分系統(tǒng)版本里直接在 UIAbility 上下文發(fā)起 socket 請求會受隱私策略限制需要把請求放在合適的上下文環(huán)境中。如果后續(xù)出現(xiàn)“模擬器能抓真機(jī)抓不了”的問題優(yōu)先檢查系統(tǒng)網(wǎng)絡(luò)策略和權(quán)限窗口。4.2 不同站點(diǎn)解析差異實(shí)測我做了幾組典型頁面測試發(fā)現(xiàn)常見的異常情況有這幾類場景表現(xiàn)處理方案meta 屬性順序不一樣正則匹配不到同時(shí)匹配兩種順序或遍歷標(biāo)簽og:image 是相對地址圖片加載 404用 new URL(relative, pageUrl) 拼全頁面是 gb2312 編碼中文全亂碼檢測 charset做轉(zhuǎn)碼或返回失敗有多次跳轉(zhuǎn)短鏈抓不到followRedirects 打開網(wǎng)站開啟了反爬返回 403模擬瀏覽器 UA必要時(shí)加 Referer其中相對地址這個(gè)問題最容易疏忽。很多頁面作者寫og:image時(shí)直接用/img/cover.jpg并不帶域名。如果直接把這一串塞給Image.network一定會 404。解決辦法是在原生側(cè)把相對路徑拼成絕對 URL即拿目標(biāo)頁面的協(xié)議和域名拼一下。另外還要注意 CMS 生成的縮略圖字段可能完全沒有 scheme比如//cdn.example.com/xxx.jpg需要手動補(bǔ)https:。還有個(gè)容易被漏掉的點(diǎn)是og:image可能對應(yīng)一個(gè)視頻封面接口接口返回的是一段重定向地址比如從/redirect?urlxxx再跳到真實(shí)圖片。如果鴻蒙側(cè)只是簡單地把第一個(gè) og:image 字符串返回Flutter 端加載時(shí)可能超時(shí)。所以我建議在原生側(cè)對圖片 URL 也做一次輕量 HEAD 請求校驗(yàn)失敗就回退到其他圖片候選。但這個(gè)操作會增加一次網(wǎng)絡(luò)請求實(shí)際中要權(quán)衡或者在 Dart 層用errorBuilder兜底即可。4.3 圖片與緩存策略卡片重復(fù)出現(xiàn)同一鏈接時(shí)如果每次都重新發(fā)請求不僅慢還可能被目標(biāo)站點(diǎn)限流。我建議在 Flutter 側(cè)加一個(gè)簡單的內(nèi)存 LRU 緩存以 URL 為 key緩存時(shí)間設(shè)為 5 分鐘。如果是聊天記錄再次展示也許要持久化到數(shù)據(jù)庫因?yàn)橥绘溄涌赡軙环春芏啻?。這時(shí)不能在 Dart 層直接序列化大圖片只緩存元數(shù)據(jù)圖片本身交給系統(tǒng)內(nèi)存圖片緩存處理。圖片如果加載不出來原因通常不是網(wǎng)絡(luò)而是圖片 URL 帶簽名參數(shù)第一次請求有效第二次過期。解決辦法原生抓取時(shí)不下載圖片只把最終經(jīng)過重定向后的圖片 URL 返回給 Flutter這樣 Flutter 端拿到的是穩(wěn)定地址。如果做不到至少用errorBuilder兜底把標(biāo)題撐滿卡片而不是顯示破圖。這里的兜底邏輯要區(qū)分“圖片還沒加載”和“圖片加載失敗”兩種情況用一個(gè)狀態(tài)字段標(biāo)記會更明確。另外卡片緩存要注意“鍵”的選擇。同一個(gè)鏈接可能因?yàn)閡tm參數(shù)不同產(chǎn)生多個(gè)緩存條目比如example.com/page?id1fromchatshare和example.com/page?id1fromfeed實(shí)際上內(nèi)容一樣。為了提升緩存命中率我會先對 URL 做一下規(guī)整去掉utm_、spm、ref等追蹤參數(shù)再作為緩存鍵。但這個(gè)規(guī)則不能太激進(jìn)否則會把帶不同錨點(diǎn)的同頁誤判成同一篇影響準(zhǔn)確性。實(shí)際工程里只去掉utm_前綴的 query 參數(shù)就夠了。5. 適配后的驗(yàn)證鏈路與擴(kuò)展建議5.1 測試樣例怎么設(shè)計(jì)鏈接預(yù)覽功能一定要有一張“測試頁清單”。我的做法是在本地搭一個(gè)臨時(shí) HTML 頁面順便用三個(gè)線上頁面做冒煙測試。重點(diǎn)是覆蓋標(biāo)準(zhǔn) OG 頁面所有字段齊全只有 title 和 description 的頁面只有圖片鏈接用戶直接發(fā)圖片 URL的情況超長標(biāo)題和超長描述驗(yàn)證 UI 截?cái)?0K 以上 HTML 的大頁面驗(yàn)證性能。只有把這些跑完才敢說“適配完成”。對于 Flutter 側(cè)可以寫簡單的斷言測試expect(result.title, isNotEmpty)。但原生網(wǎng)絡(luò)請求在單元測試環(huán)境跑不了我一般用集成測試在鴻蒙模擬器或真機(jī)上跑。注意模擬器上部分站點(diǎn)會返回與真機(jī)不同的頁面最壞的情況是地域性網(wǎng)頁所以還要在真實(shí)設(shè)備上過一遍。測試數(shù)據(jù)不能寫死因?yàn)榫W(wǎng)絡(luò)頁面隨時(shí)可能改版建議保留一份本地 mock 的 HTML 樣例用于斷言解析邏輯的穩(wěn)定性。5.2 性能和合規(guī)上的額外建議性能上我強(qiáng)烈建議限制抓取頁面大小。某些網(wǎng)站的 HTML 有幾 MB全量下載只會拖慢卡片響應(yīng)而且只為了幾個(gè) meta 標(biāo)簽非常不劃算??梢栽谠鷤?cè)讀取前 128KB 就截?cái)嘁驗(yàn)?meta 基本都在 head 里這樣能節(jié)省大量流量。實(shí)現(xiàn)時(shí)判斷響應(yīng)體長度超過閾值就只保留前段。如果截?cái)嗪蟀l(fā)現(xiàn)沒有og:image可以再嘗試從后文中提取但多數(shù)情況不需要。安全合規(guī)上鏈接預(yù)覽的本質(zhì)是把用戶看到的鏈接信息交給目標(biāo)站點(diǎn)來換取元數(shù)據(jù)所以不能在不告知用戶的情況下自動掃描聊天記錄里的所有鏈接。產(chǎn)品上應(yīng)該做到用戶發(fā)布或點(diǎn)擊消息時(shí)觸發(fā)抓取而不是后臺批量抓取。另外如果未來把抓取邏輯放到服務(wù)端一定要做 SSRF 防護(hù)禁止請求內(nèi)網(wǎng) IP??蛻舳讼鄬︼L(fēng)險(xiǎn)低也不能掉以輕心把 URL 的 scheme 限定為 http、https防止file://這類偽協(xié)議。數(shù)據(jù)緩存方面還要注意 GDPR 和本地法規(guī)對個(gè)人信息的最小化要求。鏈接預(yù)覽拿到的只是網(wǎng)頁公開元信息本身不算個(gè)人信息但如果結(jié)合消息發(fā)送者 ID 長期保存就可能被認(rèn)定為個(gè)人行為畫像存儲。更穩(wěn)妥的做法是只緩存 URL 與元數(shù)據(jù)不關(guān)聯(lián)到用戶 ID并且設(shè)置過期清理。5.3 后續(xù)擴(kuò)展方向這套適配思路可以復(fù)制到其他“解析型”Flutter 插件在本地的原生目錄補(bǔ)一個(gè) ArkTS 實(shí)現(xiàn)保持 channel 名和返回結(jié)構(gòu)不變。如果只是抓標(biāo)題和圖片也可以考慮用鴻蒙的系統(tǒng)網(wǎng)頁組件做一些輕量降級。更進(jìn)一步的玩法是把鏈接預(yù)覽做成服務(wù)端聚合接口客戶端只拉接口這樣多端體驗(yàn)完全一致也更方便統(tǒng)計(jì)點(diǎn)擊率。但這個(gè)改造要把抓取延遲從客戶端轉(zhuǎn)移到服務(wù)端需要權(quán)衡 CDN 緩存策略。另外鴻蒙生態(tài)一直在完善 Flutter 插件的標(biāo)準(zhǔn)能力未來會有更多三方庫支持原生實(shí)現(xiàn)。作為開發(fā)者我們要做的就是保持“橋接層薄、解析層獨(dú)立”的架構(gòu)把抓取邏輯盡量收斂在原生側(cè)Dart 側(cè)只保留 UI 和狀態(tài)管理。這樣即使原庫升級適配代碼的維護(hù)范圍也很小。我在自己維護(hù)的 fork 分支里就經(jīng)常用 diff 工具監(jiān)聽原庫變更只合并 Dart 層的 bugfix原生目錄始終自己維護(hù)避免被上游改動帶跑偏。我個(gè)人在實(shí)際操作中的體會是鏈接預(yù)覽更值得投入的是“回退規(guī)則”和“緩存”而不是花哨的動畫。很多頁面并不規(guī)范只有把基礎(chǔ)規(guī)則做扎實(shí)用戶才看不出哪條鏈接是自動抓的。后續(xù)我會把這次適配的橋接層抽成一個(gè)模板遇到同類型的抓取插件可以直接套用省去重復(fù)踩坑的時(shí)間。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久天天摸| 日韩AV一区二区三区三州三州| 国产人妖视频一区在线观看| 久久一二区四| 中文字幕一区二区三区四五区| 碰超人人在线一区二区三区| 亚热日本熟女| 日韩人妻有码免费视频| 亚洲熟妇丝袜在线观看| 久久精品无码专区| 九九碰九九爱97超碰| 99精品网| 中文字幕乱亚洲美女精品一区| 思思热在线cao| 成人午夜视频免费播放| 色哟哟av| 婷婷色五月激情| 嗯啊不要啊啊在线观看视频| www久久精品| 激情抓乳插进去啪啪啪日韩 | 亚熟在线| 国产黄色剧情影片麻豆免费播放| www.狠狠干.coom| 婷婷激情一区二区三区俺也去| 中文字幕第2页| 欧美日韩在线视频网站| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 欧美性爱精品七区| 国产成人免费观看在线视频| 色777999综合| 91爱啪| 人人人干干人人干| 日本人妻A片成人免费看片| 青青网三级视频| 中文字幕高清20页视频| 亚洲日本大香蕉1| 性猛交| 成人AV在线电影| 桃色六月天| 久久久久国色αv免费观看| 伊人一级免费黄片| 亚洲成?V人片在线观看福利| 884t在线| 中文字幕乱在线伦视频中文字幕乱码在线 | 91精品国产91久久青草 | 福利社区午夜一区二区| 人妻丝袜无 码视频专区| 精品福利视频| 久久大陆| 日B操| 天天爽人人综合免费7799| 无遮挡一级毛片视频免费的| 久久久工口| 激情啪啪拍91| 欧美色图99| 啊啊啊啊啊啊啊国| 欧美激情性久久久久久| 丝袜性亚洲| 9久精品视频在线观看| 亚洲 中文 女同| 大香蕉啪啪啪| 国产激情综合五月久久| 欧美激情色婷婷花野真衣一区二区| 九九九九一级| 色综合天天| 国产日本熟女顶级一区二区三区视频 | 日韩激情中文字幕有码| 懂色av中文字幕一区二区三区天美| 激情专区综合| 视频黄色国产一级| 国产精品久久久久久久久久久久久久吹 | av毛片aaaaa免费看| 男人天堂久久日韩| 亚洲av综合色区图片亚洲| 色综合久久av| 97se综合| 国产高清26uuu| 999热日韩精品| 天天夜夜久久| 日韩欧美经典在线观看| 欧美色老汉| 韩国女主播青草福利视频| 伊色久人大在线| 亚洲综合激情五月久久| 玖玖爱影院| 另类专区加勒比| 亚洲二区精品在线观看 | 亚州人妻| 黄色电影观看久久9| 国产成人在线观看网址| 97精品全部| 91亚州欧美| 少妇一区二区三区精选| 久久久涩| 亚洲污污网站| 久久神马影院| 五月婷婷六月天| 成人怡红院| 性欧美第一页| 国产精品经典一卡久久久| 岛国爱情动作片在国产AV无码专区亚洲AV漫画 | 老色鬼成人精品视频下载大在线观看| 国产亚洲精品玖玖玖在线观看| 97超碰中文在线| 日日摸天天爽夜夜欢| 欧美天堂日韩三级国产传媒| 亚洲一卡2卡3卡4卡乱码网站| 91人妻人人澡人人爽人人精品| 久湿久久| 日韩久草| 走光一区92下载| 狠狠热这里都是精品| 日韩欧美aⅴ综合网站发布| 久久精品电影| 精品四五区| 噜噜在线| 日本免费一级AAA大片器| 久久久久久久久久黄色网| 国产精品老熟女一区二区| 精品久久久久久AV无码| 福利大香蕉| 久久免费精品96| 激情AV| se吧提供国产乱老熟视频胖女人 | 久久天天艹| 日日嗨AV一区二区夜夜| 色情婷婷久久五月天| 性做久久久久久久| 日韩免费中文字幕视频| 亚洲欧美综合图片| 亚洲97p| www.狠狠干.coom | 欧美激情综合| 久久亚洲天堂| 78精品| 91殴美| 99精品丰满人妻无码| 欧美色综合图片| 99国产精品人妻人伦| 日韩国产欧美伦理在线| 偷拍 欧美 日韩| 亚洲国产成人7777| 无码精品久久| 九九探花视频在线观看| 亚洲综合色网| 亚州色交| 成人欧美一区二区三区黑人一| 五月天激情小说| 亚洲 国产 精品一区| 人人做人人妻人人夜视频| 91精品伊人久久久大香线蕉91| yiqicaoav| 精品人妻一区二区三区视频在线| 欧美体内射精| 天天日日本| 亚洲精品1区| 精品人妻一区二区三区蜜桃视频| 亚洲97综| 久久无码精品| 亚洲毛片久久| 久久黄片国产一区二区| 亚洲黄网在哪免费看| 超碰人人妻| caopeng97| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 青青青草原| 日本成人在线不卡一区二区三区 | 成人A片男人的天堂| 久久久久精| 亚洲自拍一区夜夜操| 加勒比性爱成人在线| 91日产欧美| 人妻 欧美 中文| 色狠狠一区二区三区香蕉| 精品美女久久一二三| 91天堂| 国产精品无码久久久久2025| av天堂影视中文在字幕在线中文 | 乱色视频中文字幕| 色眯眯射| 九月伊人中文字幕| 免费作爱一级视频| 99这里有精品| 欧美日韩精品久久久久东北老熟妇| wuyechaopeng| 99在线免费公开视频| 隔壁邻居波多野结衣中文字幕 | 色呦呦国产精品免费看| 九九精品无码专区免费| 激情五月天插| 亚洲天堂无码| 97视频900| 九一性生活免费视频| 狠狠操狠狠燥| 人人妻人人爱人人玩| 最新亚洲黄色免费电影| 亚洲激情网| 久久亚洲影院一区二区| 成人在线视频一区| 夜夜高潮夜夜爽国产伦精品| 国产精品干干干| 国产欧美一区二区| av网站国产主播在线| 欧美在线干| 热热色AV| 开心激情婷婷| 亚洲免费日韩在线一区二区| 夜夜高潮夜夜爽国产伦精品| 蜜乳AV一区| 日韩成人综合网| 97硬碰| 午夜爽爽爽| 亚洲男人天堂Av| 欧美 亚洲精品首页| 国产精品白领在线观看 | 一级婬片120分钟试看| 无码免费在线观看黄色片| 网页导航五月天免费一二三区 | 日本性爱网址| 色噜噜国产在线| 麻豆区久久久久亚| 伊人激情| 久湿久久| 婷婷伊人五月| 狠狠操狠狠插| av草草在线电影| 欧美亚洲另类在线蜜桃| 亚洲色性情三级| 人人操人人干xxx| 岛国精品视频在线观看| 在线视频资源| 中日高清无码操逼视频| 欧美日韩中文字幕人妻| 欧美日韩国产电影| 黄色AAAAA欧美| 97精品一二区| 日韩性爱毛片操骚逼| 亚洲综合影视| 无码天堂| 久久久爆乳翘臀一线天伦理视频| 夜夜嗨一区二区三区三州加勒比| 伊人色综合网| 91久久国产精品| 久久久久久久极品香蕉视频| 亚洲天天操| 极品极品色影院| 青娱乐91| 天天舔天天| 欧美综合综合| 五月激情天| 蜜臀在线看片| 天天躁日日躁AAAXX| 久久久精选| 国产成人免费观看在线视频| 老熟妇一区二区三区啪啪| 日本日皮视频逼| 人人妻人人澡人人爽久久av| 伊人久久亚洲色欲综合网站| 亚洲另类小说卡通动漫| 夜夜 中文视频rt| 国产精品无码av在线| 91夜夜蜜桃臀1区2区3区| 搡老女人老妇女AAA一VU麻豆| 蜜臀久久99精品久久久久电影| 九九热九九热| 亚洲视频中文一区| 久久99手机免费视频| 国产综合色精品在线观看| 天综合网| 日韩AC| CCYY草草影院地址入口| 久9精品| 2026国产精品视频| 天天干天天日天天射黄色大片 | 欧美亚洲韩国视频十五区| 91久青| 97啪啪| 国产精品另类一区大香蕉| 78久久久| 国内毛片婷婷六月色| 91 丝袜在线播放| 中文熟女五十乱码在线| 一区二区三区视频在线观看免费| 久草精品国产99| 国产久久日| 天天影视色香色欲| 中文AV制服乱伦| 欧美视频一区二区三区| 国产精品呦一区二区三区| a人欧美综合天堂麻豆| 91福利网在线观看| 香蕉精品二区二区| 级品肉射| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 国产日韩精品人妻久久久久色欲网站| 加勒比久久av| 亚洲男人天堂2| 国产成自自拍在线观看| 91天堂色男人的天堂| 你懂的在线观看区国产| 日本黄色天堂| 欧美瑟综合| 日本一级不卡一二区| 9999久久久久| 亚洲va综合va国产va中文| 亚洲天天在线| 97操在线| 大香蕉伊人亚洲| 丝袜大香蕉| 伊香蕉综合久久久久久久噜噜噜| julia中文字幕在线观看| 激情综合五月婷婷| 欧美另类精品xxxx| 九九干| 亚洲天天操| 久久久少妇| 岛国999| 毛片99-全集电影手机免费观看完整-B029AV| 能直接看AV的网站| 国产色精品午夜大片| 亚洲精品99999| 97频视在线| 中文字幕人乱码中文字的预防方法 | 国产吹潮女在线观看| 男人的天堂在线| 久久久草草精品| 国产精品午夜精品| 97色涩| 日韩欧美成人大香蕉| 国产精品久久伊人| 99色综合| 亚洲美女 晚间男人天堂 | 人妻另类 专区 欧美 制服| 日本成a人v网站在线观看| 国产欧美日本亚洲精品| 看一级特黄a大一片| 97啪啪| 欧美人妻制服| 亚洲熟妇一,二,三期| 久草电影网| 91美女視頻| 久久水蜜臀亚洲AV无码精品| 免费视频在线观看啊啊啊啊啊| 性爱1区| 五月天久久久| 约操熟妇| 操婢日韩| 精品人妻美妇91job| 黄在线| 五月丁香婷婷综合| 人妻 中文 日韩| 激情无码日韩| 国产精品久久久久av| 亚洲图片欧美| 成人免费看吃奶视频网站| 色乱二区| 欧洲综合视频| 夜夜操av亚洲一区二区| 另类av综合久久| 东京成人一区| 嗯嗯啊啊好疼| 黄久久| 97亚洲中文| 国产精品久久久久婷婷二区次| 欧美性爱一区二区三区| 久久久久久一日韩字幕无码| 亚洲欧美在线观看无码| www黄片免费看com| 麻豆精品天美| 日日97| 少妇天堂| 免费A V在线播放| 欧美色性爱| 精品一区二区啪啪啪| 国产第二页| 欧美一级在线观看成人| 天天日天天舔天天喷天天射| 超碰79人人乐| 99re95| 美女诱惑在线一区| 日韩AV噜噜噜一区二区三区四区| 亚洲文学偷乱拍啪啪啪啪| 精品久久9| 日本幼女18+| 成全在线观看免费观看| 中文字幕视频2区| 婷婷激情四射| 五月丁香色综合| 欧美午夜色妇色鬼| 蜜臀无码视频在线观看| 最新加勒比丝袜在线| 中文字幕一二三区| 四虎在线免费视频| 最新av网站在线观看| 涩涩这里只有精品视频| 操b网站亚洲无码| WWW美腿丝袜香蕉中文| 欧美精品一区二区少妇免费A片| 97人人干| 在线啊啊啊| 国产精品视频一区二区三区八戒| 色五月婷婷麻豆在| 99re视频这里只有精品| 涩涩这里只有精品视频| 亚洲欧美中文日韩视频中国语| 色蜜AV| 夜夜躁狠狠躁日日躁av| 另类综合另类| 在线视频免费观看午夜| 亚洲精品日韩国产欧美| 超碰社区97| 香蕉99秘 一区精品蜜桃臀| 国产亚洲深夜激情| 女人的天堂大香蕉网| 青青色在线观看| 国产精品麻豆免费视频| 九九久久国产精品| 黄色一区三区| 婷婷中文字幕| 国偷自 一区二区| 日本二三四区| 人人操人人操人人人操| 久久6热精品99视频| 熟女精品va中文字幕| 中文伊人大香蕉视频| se..亚洲欧美| 色婷婷五月综合激情中文字幕| 天天影视综合色| 91久久99久久91熟女精品| 欧美另类色| 91成人无码| 亚洲综合网电影91| 超碰欧美COM| 日韩免费大片一级播放| 香蕉一区二区三区在线视频| 伊人九九九| 大香蕉免| 亚欧成人中文字幕一区| 性爱AV天堂| 蜜乳中文字幕a在线| 91久精品| 高清视频一区| www.狠狠| 亚洲精品国产无码高清| 色欧美色交综合| 天天操天天干一区二区 | 脫衣舞一区二区三区| 极品丝袜无码| 人妻夜夜爽天天爽三区麻豆AV网站| 亚洲第一成人影院色播| 操老熟女AV| 曰韩成人免费视频| 国产精品爆乳懂色蜜乳| 啊啊啊啊啊在线观看网址 | 亚洲天堂电影网| 黄视频免费| 国产久久一区二区| 国产欧美一级在线观看| 天天操天天看| 999国产精品999| 91肉片| 六月丁操逼| 毛片电影一区二区三区| 国产精品久久蜜乳av| 久久婷婷五月天| 日韩中文字幕精品一区在线| 蜜臀久久99精品久久久久久酒店 | 亚洲中文制服诱惑| 无套内射性感少妇视频| 99精品视频在线观看免费| 性天堂| 熟妇一区二区三区| 欧亚性爱在线视频| 欧美淫乱视频| 美女91av| 国产呦精品一区二区三区下载| 男人的天堂99| 日韩中字av一区| 97精品综合久久| 我想要 啊 啊 啊| 97激情97激情| 久草成人福利导航| 综合 欧美 亚洲 日本| 久久久久久久久国产| 国产性刺激| 东京热男人的天堂精品| 91精品亚洲内射孕妇| 2019午夜福利视频| 青青草五月天| 国产欧美成人精品| 色偷综合| 春色综合免费| 情色五月天就去干| 伊人少妇久久久| 欧美在线视频99| 欧美黄色大香蕉一区二区| 日韩亚洲国产视频| 99久久99久久免费精品蜜臀| 97久久网| 成人一级二级| 日韩av熟女一区二区三区成人| 人妻81p| 人人操人人插人人摸人人干| 久操网视频| 久草网站免费在线观看| 人妻人久久精品中文字幕| 亚洲91射| 日本一二三高清| 久久精品99| 正宗无毛一线天嫩逼| 男人 天堂 日 亚洲| 日韩欧美操逼xxx| 丰满人妻一区二区三区| 亚洲午夜蜜臀| 无码高清专| 国产精品高潮久久AV| 国产白嫩漂亮KTV在线| 久久久久久无码人妻中文字幕| 丁香五月天激情| 巨乳特殊服务按摩| 国产福利第一视频| 色网站导航大全| 久艹99| 男人的天堂啪啪啪啪啪蜜桃不卡| 青操影院| 亚洲AV无码黄色强奸| 亚洲深夜福利| 亚州熟妇精品| 2021久久国产综合精品青草| 97天天弄| 久久五月天婷婷丁香中文字幕| 激情AV| 嫩草美女久久| 亚洲在饯| 高树玛利亚无码流出| 欧美成人A天堂片在线观看| 色好看av| 亚洲欧洲综合av在线| 9999伦理视频| 激情五月天丁香| 搡老女人老91二区| 亚洲麻豆18发?| 67914在线精品观看| 天天综合91| 色哟哟-国产专区| 日韩欧美亚欧在线视频| 国产91丝袜 在线播放| 欧美大片一区二区三区| 美女操逼福利视频| 超清福利精品视频在线| 黄呦呦在线| 超碰79人人乐| 中文字幕 人妻不满 在线视频| 波多野结衣先锋影音| 极品销魂美女一区二区| 欧美91在线| 欧美日韩亚洲少妇寂寞影院正在播放 | 欧美伊人久久综合网| 久9久9精品| 国产精品视频白浆免费| 亚洲字幕一区二区| 超碰97综合网| 亚洲欧美校园| 91 亚欧| 97资源超碰| 欧美黑人XXXⅩ高潮交| 亚洲另类欧美精品| 国产无码精品无码| a亚洲欧美色欲| 精品国产三级av韩国在线| 亚洲熟女乱熟乱熟妇综合网二区| 国产一区二区欧美日本| 无码精品蜜桃一区二区三区ww| 欧美色图校园春色| 久久久久久久久久久久97| 熟女熟妇一区二区三区视频| 蜜臀在线看片| 最新精品久久蜜桃 | 日本一区二区中文字幕久久| 亚州成人a∨| 久久免费老司机精品| 国产精品九9| 中文字幕视频一区视频二区| 中国国产精品一区视频| 成年人黄色小视频网站| 岛国黄片网站| 一起草在线视频| 无卡一区=区| 91精品人妻一区二区三区蜜桃臀| 成人女人国产| 丝袜高跟澳门91视频| 操死我干死我| 国产女性无套 免费观看| 成人三级片无码| 色五月综合| 亚洲 欧美 另类 综合 偷拍| 五月婷婷综合激情| 操逼片国产| 综合久久欧美| 天天看少妇| 翔田千里av一区二区三区| 欧美乱欲| 日本性爱欧美性爱| 2017av无码免费无线播| 91碰超| 日韩操逼性鲍| 大香蕉乱伦视频网| 情色五月天久久久| 99久久久无码| 蜜臀久久99精品久久久久久久久| 337p大胆噜噜噜噜噜91Av| 精品成人动漫一区二区| 国产在线视频二区| 日本免费中文字幕在线| 亚洲AV无码乱码| 91无码西班牙视频在线| 农村女一级毛卡片| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 久综合国内精品自在自线| 亚洲一区二区精品福利| 亚洲色图欧美视频| 久久久 国产精品| 一区二区三区 日韩欧美| 国产成人欧美一区二区三区的国产| 91精品久久综合熟女| 亚洲福利中文字幕在线| 国产激情在线观看| 青青网三级视频| 综合性视频99| 综合影院永久入口国产| 丁香五月激情啪啪| 91强在线播放| 最新无码国产| 国产精品美女在线一区| 亚洲色堂免费视频| 中国和日本人色哪个不下载能放| 一区操逼日比视频| 蜜桃视频精品一区二区三区| 婷婷激情四射| 狠狠综合网| 啊啊啊不要好疼视频| 啊啊啊com| 91久久午夜无码鲁丝片久久人妻| 久久爱超碰网| 人妻精品一区一区三区蜜桃91| 激情综合 婷婷五月 红杏| 精品欧美А∨无码黑人大荫蒂 | 偷看洗澡一二三区美女| 天天插天天插| 91欧| 成人片在线播放| 在线 欧美 亚洲| 欧美日韩国产中文精品字幕自在自线| 亚洲综合网电影91| 天天插网| 久草视频在线视频在线视频在线观看| 大香蕉人妻| 亚洲色棕合| 91麻豆天美| 素人播放一区| 动漫av中文| 天天日夜干| 久久天天摸| 天堂精品| 人人扣人人操| 99热这里都是精品| 91一起操| 91久久久久久久久18| 另类专区加勒比| 欧美日韩国产高清在线一二三区| 欧美亚洲影视| 色黄污美女啪啪啪免费网站| 欧美猛交黑寡妇中文字幕| 浓厚中出中文字幕在线| 97天天操天天干| 99热一区二区三区四区| www.大香| 久热精品在线| 久久99黄色卞西瓜| 97精品视频在线| 波多野结衣被操50分钟免费视频 | 成人性交免费视屏| 国产精品情侣啪啪| 中文字幕精品一区二| 99在线视频播放| 1禁看欧美黄片免费看| 舔人妻中文免费视频| 午夜性刺激视频免费观看| 福利在线黄片| 欧美 亚洲 在线| 久久超碰亚洲人| 男人天堂2019| 簧片免费看视频| 97干天天| 丁香色五月 97干| 亚洲综合第一页| 久久精品中文| 大香蕉啪啪啪| 正在播放国产精品一区| 人人污日韩一区二区| 亚洲日本激情| 天堂亚洲精品| 女人高潮抽搐喷水视频网站| 97在线免费观看视频| 亚洲综合性网址| 天天躁日日躁AAAAXXXX国产 | 亚洲综合九九| 蜜桃久久综合视频| 久久男人精品| 北京美女一区二区| 欧美一级特黄淫片在线观看| 黄色一区三区| 久久一区,青青青青草视频在线播放| 97免费在线观看视频| 婷婷五月天伊人| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 天天操天天日天天干| 熟女性视频| www.91视频网| 蜜臀av在线播放一区二区三区| 亚欧免费| 思思久热在线精品66| 久久精品国产97欧美精品亚洲 | 天天色,天天干,天天干| 青青草久草| 国产三级中文字幕粉嫩| 秋霞一级视频在线观看免费| 中韩中文字幕在线观看| 国产丝袜视频| 韩国一级做A片免费的| 成人日韩3| 日本中文熟女视频| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 无码粉嫩白虎一线天b区| 日韩一级特黄av毛片| 欧美玖玖爱免费玖玖| 在线观看国产黄色| 在线观看免费视频国产| 国产午夜在线观看| 怡春苑东京热| 日本 欧美 国产一区| 很黄很色的视频在线观看| 永久电影三级在线观看| 久久久久久久性爱| 亚洲 欧美 小说| 第四色色综合91| 亚洲 日韩 丝袜 熟女 变态| 超碰97久久| 天天伊人| 极品一区二区三区免费| 性色一线| 久综合网| 大香蕉综合网| 日韩精品午夜操呦呦不卡影院| 啊啊啊男女| 真实高潮91| 在线观看黄色电话| 在免费jIzzjIzz在线视频| 乱欲一区二区| 黄骗免费| 91亚洲欧洲| 99无码狠狠久久| 操逼无码操逼| 亚洲三区视频| 91操熟女| 久久精品国产97欧美精品亚洲 | 色情亚洲日本成人| 国产精品自拍xxxx| 亚洲一区二区中文字幕| 欧美性爱超碰97| 97国产精品在线观看| 欧美最婬乱婬爆婬牲视频| 精品福利视频| 三级片大波波| 国产毛片精品一区二区色欲黄A片| 色综合色色| 在线视频免费播放一区| 亚洲偷拍自拍在线视频| 99精品无码| 亚洲乱色视频一区、二区在线| 不卡免费av在线播放| 免费少妇一区二区| 欧美人妻一区| 日本 欧美 亚中文字幕| 手机不卡视频不卡在线一二三区| 97se综合网| 色天使AV天堂| 香蕉大久久久| 亚洲天堂资源网| 国内外激情在线| 人澡逼| 亚洲色人| 91日韩国产欧美亚洲另类精盘州至城都| 大干人妻| 久久精品—区二区三区内射| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 国产久久视频| 麻豆精品天美| 亚洲天天更新| 欧美一级特黄淫片在线观看| 综合色色婷婷| 98色网| 爱爱久久| 蜜臀人妻少妇久久在线观看| 婷婷四五区| 亚州少妇| 看看日B真人视频| 91精品人妻一区二区三区蜜桃臀| 蜜臀av中字字幕网站| www老逼91| 大香蕉中文aV在线| 啊啊啊要高潮了| 试看60秒 爽| 秋霞曰韩R级| 久久精品老司| 狠狠干91| 人人操我人人干| 日韩有码免费视频| 亚洲综合 欧美| 久艹视频在线| 人妻少妇精品视频一区二区三区| 亚洲精品影视老司机| 久久大香蕉手机高清| 人人色人人射人人妻| 成人情色综合网| 国产精品成人无码a v毛片| 国产欧美精选激情视频| 亚洲成?V人片在线观看福利| 国产嫩草精品A88AV在线| 91中文精品日韩欧美在线 | 91精品在线播放| 精品国产乱码久久久| 日本色日夜干| 欧美性爱18观看| 澳门成人网站久国产日韩| 中文字幕丝袜人妻| 97九色| 日韩人妻制服丝袜av| 啊啊啊啊啊操我视频| 欧美日韩色| 国产AV久久久蜜爱影集| 伦理日韩国产久久| 国产精品成人无码a v毛片| 国产精品 午夜福利| 日日骚精品视频| www.99中文字幕| 欧美激情一区二区| 色噜噜日韩精品| 不卡av免费在线网址| 国产高清免费不卡av| 婷婷综合网站| 操逼内射干逼白丝91| 亚洲熟妇白浆无码AV| 91精品人妻一区二区三区蜜桃| 亚洲国产精品成人综合| 九一屌逼| 欧美综合综合| 五月天婷婷色| 大香蕉青青9| 视频一区二区免费在线| 日本久久久久久久久| 麻豆成人av| 熟女乱伦A| 九久久九精品视频| 97久操| 日韩三级一区 | AV久日| 99久久久久久亚洲精品不卡| 亚洲精品欧洲精品| 国产av波波国产精品| 亚洲日本天堂| 色婷婷色99国产综合精品| 国产a级精品| 青草一区二区| 欧美嗯啊……在线观看视频免费| 日本性一区| 五月色网| 亚洲高清视频在线免费观看| 久热婷婷| 欧美精品欧美精品系列| 欧美黄色片在线播放| 少妇人妻激情四射| 久综合国内精品自在自线| 亚洲欧美setu| 一级久久性爱视频| 任你干在线视频| 久久久久久久国产视频| 揉揉揉夜夜| 亚洲成人免费在线| 中国农村熟妇毛片视频| 国产女上位好爽在线| 操逼视频国产无套| 伊人青青一区成人视频在线观看区| 99色综合| 三级日本一区二区三区| 日韩精品系列| 第四色奇米影视777| 任我爽视频在线观看| 懂色Av一区二区三区| 中文字幕少妇色| 亚洲欧美精品福利在线| 日韩成人高清一区二区| 偷窥自拍亚洲色图| 美女午夜福利免费视频| 91亚洲欧洲| 久久一本大香蕉 | 国产一在线观看| 97视频免费| 天天爽天天| A级片一区| 99 国产丝袜在线| 亚洲无码视频免费在线观看网址!| 国产精品女同| 国产真乱mangent| 深喉吞精| 国产精品乱码久久久久久| 亚洲色图殴美色图激情乱伦| 久久久18禁| 97干97色| 99re6在线视频播放免费精品| 激情综合网激情五月天| 亚洲最新中文字幕免费| 国产肏逼网站| 超碰91在线| 欧洲乱码视频| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 亚洲欧美天堂| 大香蕉草草| 色哟哟av| 午夜一区| 欧美性爽xyxOOOO| 日本一级不卡一二区| 91超级碰| 白嫩国模丰满一二三区| 这里只有精品视频在线观看麻豆| 久久超碰av在线| www久| 大香蕉黄色一区| 欧美不卡二区| 操逼片国产| 日韩综合无码一区久久92| 久久国产精品m码| 欧美肥臀在线| 久久中文字幕女同性恋一区| 色偷综合| 色色青青久久| 美国美女AV在线| 神马精品视频| 日本高清_区二区三区| 日本孕妇一区二区视频操逼免费看 | 日日夜夜免费| 精品一区二区麻豆| 久99久视频| 天天插天天操| 超碰狠狠操| 精品人妻一区二区视频| 精品传媒在线一区| 日本色日夜干| 超碰97精品| 加勒比久久av| 黑白配性爱AV成| 欧美色日本| 狠狠爱夜夜干| 97国产|免费| 亚洲影视综合| 翔田千里无码一区| 人人妻人人爽| 人乳av| 级品肉射| 99精品无码| 欧美综合网A| 亚洲视频二区| 天天干夜夜| 亚洲男人的天堂网| 欧美丰满少妇交换91欧美精品| 天天干天天日天天射黄色片| 91超碰碰在线| 伊人91| 操逼日韩无码| 九九探花视频在线观看| 色五月综合网| 国产精品熟女AV中文字幕在线播放| 色情五月综合婷婷| 精品99999久久久久久| 三级三级三级日本99| 人人妻人人狠人人| 黑人精品成人一区二区三区| 色欧美天天| 欧美色图私拍91| 伊人久久亚洲色欲综合网站| 最新精品久久蜜桃 | 美女91在线| 麻豆国产97在线| 久久高清欧美国产| 亚洲AV无码天美传媒一区| 国产日本熟女顶级一区二区三区视频| 日韩情色AV| 四虎av在线| 麻豆色99999| 日本孕妇一区二区视频操逼免费看| www.av在线视频| 国产又色又爽又舒服的三级视频| 亚州操操穴网| 亚洲熟妇白浆无码AV| 天天天操天天天爱| 天堂精品小草| 九九九九九九九九九五码| 欧亚第一综合网| 中文字幕版| www久久精品| 欧美色图91| 国产精品免费久久久久久久久久| 97精品免费| 亚洲av噜噜噜噜噜噜| 波多野结衣之双飞调教在线播放 | 日日黄色三级网站| 色老牛| 东京热一区二区中文字幕| 亚洲最大的综合性av| 嗯嗯嗯不要不要免费视频| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 91在线免费观看处女| 亚洲美女高潮喷水视频| 97久久网| 日韩国产乱子伦App| 亚洲一二三四区机械| 97日视频| 搡老女人老熟女91| 婷婷色综合欧美日韩| 手机在线免费看的av| 日韩一级片在线看| 操人妻少妇中文| www.AV有限公司一区| 91激情国产| 日韩色| 顶级丝袜熟女一区二区三区| 久久伊人大香蕉| 亚洲情色综合网| 欧美亚洲尤物久久| 色欲色香天天天综合网www-亚洲综合国| 久草老司机| 熟女91网站| 99色色网| 六月丁操逼| 97在线观看免费| 精品性爱一二三区| 是还免费视频1727我| 日本黄色大片一级视频免费麻豆| 久久九七| 亚洲综合在线91| 3p国产欧美99热| 无码九九| 天天色播亚洲综合网站| 好爽要喷了| 国产农村一一级特黄毛片| 亚洲人妖网| 中文字幕中文字幕一区二区| 91丨熟女丨丰满熟女| 亚州情色j区| 蜜桃狠狠色伊人亚洲综合 | 91久久精品中文字幕| 91oumei| 九九热AV| 操人妻逼91| 午夜男人av| 97超碰资源网| 性猛交| 国产夫妻一区二区| 91精品久久久久五月天精品| 狼人综合婷婷激情四射 | 超碰综合色| 国产三区免费在线观看| 亚洲一区中文字幕| 国产精品网址| 欧美青青草视频| 91处女在线观看| 亚洲中文字幕av| 啊啊啊啊网站| 蜜桃精品视频一区| 国产综合久久久麻桃个| 日本一本一区二区三区四区五区欧美日韩中文字幕| 亚洲日本韩国极品一区二区| 视频国产成人精品日本亚洲18| 99热亚洲| 日韩欧美福利视频看看| 男人的天堂2018东京热啪啪啪| 日韩99999| 亚洲影院小综合| 日韩三级伊人| 日本天天吊| 97超碰美女| 激情五月综合| 日本一线产区和二线产区伦理片| 吻戏激情性巴克| 国产又黄又爽又刺激久久久久久| 1204金沙人妻懂旧版免费| 亚洲一区二区三区在线激情| 久久久久成人蜜桃精品| 丝袜美腿射精91| 亚洲色图欧美另类在线| 日本一区二区三区免费观看| 99热亚洲| 日本久久女同性恋视频| 亚洲熟女乱综合一区二区三区| 久久无码电影| 麻豆精品三区视频| av在线不卡一区二区三区| 800zy一区二区| 夜草网站| 亚洲好色人妻| 国产精品嫩草影院免费| 亚洲色人阁| 黑丝91视频| 日韩啊V| 日韩99神马视频播放片在线播放| 亚洲丝袜诱惑| 日本孕妇孕交| 成年女人18级毛片毛片免费观看| 五月天日日操夜夜操| 婷婷91| 成年人黄色小视频网站| 亚洲欧美黄| 欧美暴力猛交| 91Chinese在线| 青娱乐黄色录像| 91老熟女老女人国产老太| 精品国产乱码久久| 五十路熟女在线不卡观看一区二区| 免费A V在线| 国产一区二区三区视频在线看| 美女91在线| 夜夜嗨一区| 精品妇女一区二区三区| 视频一区二区三区精品| 国产欧美黑人丰满在线| 日本在线激情一区二区三区 | 欧美色自拍| 久久久久国产无av| 国产农村妇女精品| 大香网伊人久久综合网eew| 黄色网址久久精品欧美喷水| 无码不卡八戒| 91狠狠综合| 欧美精品久久| 色婷婷丁香五月| 97AV在线观看| 大香蕉色欲AV| 精品国产乱码久久久久久久久1| 成全动漫视频观看免费下载| 日韩三级性| 嗯嗯啊中文字幕| 黄片com.| av网页一区二区三区| A 在线网址| 最新三级网址| 波多野结衣被操50分钟免费视频 | 九九九九九九九九九国产精品| 欧美日韩中文字幕不卡| 国产白丝网站| 欧中美三级一区二区三区|