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

ARTICLE DETAIL

資訊詳情

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

Android WebView混合開發(fā)進階:AgentWeb封裝框架接入與避坑實踐

Android WebView混合開發(fā)進階:AgentWeb封裝框架接入與避坑實踐 做Android開發(fā)的基本都繞不開WebView這關(guān)。無論是內(nèi)嵌電商H5頁面、運營活動頁還是富文本編輯器、復雜報表展示原生底層和Web頁面的混合開發(fā)早就不再是什么新鮮事。但WebView這玩意兒原生API雖然能用坑卻格外多——文件上傳不走系統(tǒng)回調(diào)、JS與原生通信要反復封裝、頁面回收不及時還會內(nèi)存泄漏。我最早做某電商項目的時候光是適配一個拍照上傳就折騰了兩周后來換了AgentWeb這套封裝框架才真正把精力放到業(yè)務本身。這篇內(nèi)容是混合開發(fā)系列的第一篇先把AgentWeb的選型思路、基礎接入、生命周期綁定講透適合剛接觸WebView混合開發(fā)、或者已經(jīng)在用原生WebView但想省心的開發(fā)者參考。讀完你至少能獨立完成一個帶進度條、支持文件上傳、能和H5雙向通信的基礎混合開發(fā)容器。1. 混合開發(fā)到底在解決什么問題1.1 什么時候該上H5很多新手剛接觸混合開發(fā)時會有個誤解以為H5頁面就是簡單地把網(wǎng)頁放到App里。實際上什么場景適合H5、什么場景必須原生這個邊界直接決定項目后面會不會返工。我的經(jīng)驗是凡是有強編輯型內(nèi)容、高頻發(fā)版需求、需要跨平臺保持一致的頁面優(yōu)先用H5。典型的就是電商的秒殺、大促活動頁運營希望幾點上線就能幾點上線不想等應用市場的審核周期。再比如用戶協(xié)議、隱私政策、幫助文檔這類低頻但必須實時更新的頁面用H5最省心。而涉及復雜手勢交互、音視頻推流、系統(tǒng)級能力調(diào)用的頁面除非H5有成熟的SDK兜底否則還是老老實實走原生。還有一種常見的場景是App內(nèi)的部分模塊是外包團隊或前端團隊維護的原生團隊只負責殼工程。這時候混合開發(fā)不僅是技術(shù)選擇還涉及團隊協(xié)作邊界。把WebView容器做好原生端提供給前端一套穩(wěn)定的JavascriptBridge接口兩邊各干各的效率會高很多。1.2 原生WebView的四大痛點沒有對比就沒有傷害。很多人一開始覺得WebView嘛new一個出來loadUrl就行真正上生產(chǎn)環(huán)境跑起來才會發(fā)現(xiàn)原生的實現(xiàn)方式有多費勁。第一個痛點是文件上傳。系統(tǒng)WebView不提供統(tǒng)一的文件選擇回調(diào)你需要自己重寫WebChromeClient的onShowFileChooser然后處理拍照、相冊選擇、音視頻錄制這些Intent的組裝不同系統(tǒng)版本下Intent的寫法還會變。我當時做那個電商項目Android 7和Android 11上的拍照返回邏輯完全不一樣光適配就花了一整天。第二個痛點是JS和原生通信的封裝。原生的addJavascriptInterface雖然能用但要處理線程切換、返回值回調(diào)、方法名統(tǒng)一管理這些事。如果不封裝好H5那邊調(diào)一個方法原生這邊就要寫一堆重復代碼時間久了容易改出線上事故。第三個痛點是生命周期管理。WebView不是Activity它不會自動跟著頁面走。你不調(diào)onPause它可能在后臺繼續(xù)播放視頻你不調(diào)用onResume頁面恢復后WebView狀態(tài)可能是錯的。原生WebView在這些生命周期方法上沒有任何約定全憑開發(fā)者的自覺。第四個痛點更隱蔽就是內(nèi)存泄漏。WebView內(nèi)部持有Activity的引用如果你在Activity里直接持有WebView實例而不做回收處理頁面關(guān)閉后內(nèi)存大概率被占著不釋放。尤其是做單WebView容器的應用退出了幾十個頁面之后內(nèi)存占用能漲到嚇人的地步。原生實現(xiàn)需要手動removeAllViews、destroy、置空引用這些模板代碼寫多了總是容易漏一環(huán)。1.3 為什么最終選擇AgentWebAgentWeb并不是什么花哨的黑科技它本質(zhì)上是把WebView相關(guān)的系統(tǒng)API做了一個非常厚實的封裝。我選擇它的理由很直接。首先它把WebView、WebViewClient、WebChromeClient的初始化全部整合成了一個鏈式調(diào)用十幾行代碼就能完成核心配置。文件上傳、下載、JSBridge這些原本要自己手寫半天的東西在AgentWeb里都有對應的模塊支撐省掉了大量模板代碼。其次它的JSBridge做得比較順手原生方法通過注解暴露給H5H5調(diào)用原生時還能傳回調(diào)函數(shù)反向調(diào)用也用quickCallJs這種簡潔的方式實現(xiàn)不用自己維護一堆回調(diào)Handler。再有AgentWeb的生命周期管理和內(nèi)核回收做得相對完善對內(nèi)存泄漏的處理比我手寫方案要穩(wěn)。它還自帶了一些安全配置比如默認關(guān)閉某些危險接口、支持WebView的硬件加速開關(guān)這些細節(jié)單獨去查文檔很費時間。當然任何封裝庫都有其取舍AgentWeb也并非萬能。它適合大多數(shù)常規(guī)混合開發(fā)場景但如果你要做極度的內(nèi)核定制或者需要特殊通信協(xié)議那還是得回到原生WebView去自己造輪子。這個定位要說清楚避免后面被帶偏。2. AgentWeb接入前的準備工作2.1 依賴引入與基礎權(quán)限項目接入三方庫不算復雜但還是有點細節(jié)需要注意。先強調(diào)一點建議在接入前去官方倉庫看一眼最新版本號別用我下面寫的版本號直接照抄畢竟開源庫的迭代速度不慢用最新穩(wěn)定版能少踩不少歷史遺留的bug。在模塊的build.gradle里加上agentweb-core的依賴release包記得把混淆策略調(diào)整好。默認的R8全量混淆可能會把AgentWeb內(nèi)部的一些類名或方法名混淆掉導致運行時報ClassNotFoundException最好在proguard-rules.pro里加上相關(guān)keep規(guī)則。常見的寫法是-keep class com.just.agentweb.** {*;} -dontwarn com.just.agentweb.**這里有個容易踩的細節(jié)如果項目同時還引用了多個WebView相關(guān)的庫它們的類包名很可能有重疊或沖突需要提前看一遍依賴樹確定版本唯一。權(quán)限方面很常規(guī)只有網(wǎng)絡權(quán)限是必須的uses-permission android:nameandroid.permission.INTERNET/如果你要實現(xiàn)拍照上傳功能記得動態(tài)申請相機和存儲權(quán)限這部分不是AgentWeb能替代的還是得自己處理運行時權(quán)限申請。2.2 初始化容器與加載頁面的標準姿勢AgentWeb強調(diào)一個“容器”概念。你不在Java代碼里直接new WebView而是在布局里占一個FrameLayout或者LinearLayout讓AgentWeb把WebView填充進去。這樣做的好處是Activity銷毀時容器會隨界面一起釋放避免手動分離父布局的繁瑣操作。我建議在布局里用一個占滿全屏的FrameLayout作為WebView父容器比如FrameLayout android:idid/web_container android:layout_widthmatch_parent android:layout_heightmatch_parent/然后初始化AgentWeb基礎寫法大概是這樣AgentWeb.with(this) .setAgentWebParent( mWebContainer, new LinearLayout.LayoutParams(-1, -1)) .useDefaultIndicator() .defaultWebClient(mActivity, new WebChromeClient()) .createAgentWeb() .ready() .go(url);這個方法鏈看起來簡單每步的含義還是要搞明白。setAgentWebParent是指定容器第二個參數(shù)是WebView在容器里的布局參數(shù)-1、-1就是match_parent。useDefaultIndicator會生成一條默認的頂部進度條顏色可以自己傳一個色值進去。defaultWebClient會設置兜底的WebViewClient和WebChromeClient第二個參數(shù)傳Activity實例是為了處理文件上傳和權(quán)限回調(diào)。createAgentWeb完成創(chuàng)建ready開始準備go是真正去加載URL。順序不能亂這幾個方法少一個都不會正常工作。還有一點容易被忽略就是如果H5頁面里的WebSocket或定位要求HTTPS環(huán)境你在開發(fā)測試階段可能要用HTTP的調(diào)試地址。這種情況別在生產(chǎn)包里放開網(wǎng)絡安全配置測試包單獨放開就行。2.3 生命周期同步最容易漏掉的一環(huán)無論是原生WebView還是AgentWeb生命周期管理都是混合開發(fā)容器穩(wěn)定性的基石。AgentWeb把生命周期方法封裝成了一個可調(diào)用對象你只需要在Activity的對應生命周期里去同步調(diào)用。具體來說在onResume里調(diào)用getWebLifeCycle().onResume()它內(nèi)部會處理WebView的恢復、重新顯示、音頻焦點等問題。在onPause里調(diào)用getWebLifeCycle().onPause()頁面切后臺時能及時停止正在執(zhí)行的JS和視頻播放。在onDestroy里調(diào)用getWebLifeCycle().onDestroy()這是釋放WebView資源、避免內(nèi)存泄漏的關(guān)鍵。寫起來像這樣Override protected void onResume() { super.onResume(); if (mAgentWeb ! null) { mAgentWeb.getWebLifeCycle().onResume(); } } Override protected void onPause() { super.onPause(); if (mAgentWeb ! null) { mAgentWeb.getWebLifeCycle().onPause(); } } Override protected void onDestroy() { if (mAgentWeb ! null) { mAgentWeb.getWebLifeCycle().onDestroy(); } super.onDestroy(); }很多線上WebView問題其實都源于沒做生命周期同步頁面切后臺后音樂還在放、視頻聲音停不下來都是這里漏了。還有一個高頻場景是返回鍵處理。如果H5內(nèi)部有層級跳轉(zhuǎn)比如從一個商品列表頁點進了詳情頁用戶按返回鍵時應該先讓WebView回退而不是直接退出當前Activity。AgentWeb提供了BackHandledWebView來處理這個邏輯通過mAgentWeb.back()判斷是否可以執(zhí)行WebView回退。同時還要處理H5頁面里的模態(tài)彈窗否則WebView的goBack方法可能失效。Override public void onBackPressed() { if (mAgentWeb ! null mAgentWeb.back()) { return; } super.onBackPressed(); }這里要特別說明mAgentWeb.back()返回true表示網(wǎng)頁可以繼續(xù)回退返回false才表示已經(jīng)回退到了入口頁面。3. 混合開發(fā)核心功能通信、上傳與登錄態(tài)3.1 JsBridge雙向通信方案既然叫混合開發(fā)Android原生和H5之間的通信就是繞不開的核心。AgentWeb對這塊的支持做得比較順手我直接用實例拆開講。先看H5調(diào)用原生的情況。假設你在Activity里有一個JsInterface類public class JsInterface { JavascriptInterface public void showToast(String msg) { runOnUiThread(() - Toast.makeText(mActivity, msg, Toast.LENGTH_SHORT).show()); } }然后通過AgentWeb暴露給H5mAgentWeb.getJsInterfaceHolder().addJavaObject(app, new JsInterface());H5那邊就可以直接寫window.app.showToast(hello world);這里有一個歷史教訓必須提。從Android 4.2開始被H5調(diào)用的方法必須顯式加JavascriptInterface注解否則WebView會直接忽略這個接口。我當時在調(diào)試時遇到過明明調(diào)用了卻一點反應都沒有的情況排查了半天才發(fā)現(xiàn)是注解漏加了。H5調(diào)用原生還可以傳回調(diào)函數(shù)這在AgentWeb里是通過特定格式的JsCallJava來支持的。簡單場景下直接傳字符串參數(shù)就夠用但復雜場景還是建議在原生側(cè)做好參數(shù)解析和線程切換。再看原生調(diào)用H5場景一般是原生收到某個事件后通知頁面刷新。AgentWeb把這條通道封裝得很短一行調(diào)用即可mAgentWeb.getJsEntraceAccess().quickCallJs(refreshPage, arg1, arg2);H5側(cè)只要定義同名的全局方法refreshPage就能收到參數(shù)并執(zhí)行回調(diào)。這個調(diào)用是異步執(zhí)行的不能在主線程假設返回值已經(jīng)同步拿到。通信安全這塊一定要重視。因為WebView的JS接口一旦暴露加載的頁面是有能力調(diào)用它的。不建議把addJavaObject的識別名設置得過于通用還要在H5調(diào)用時對來源URL做白名單校驗。比如只放行公司域名下的頁面其他域名一律拒絕調(diào)用敏感接口這是被薅過一次流量后沉淀下來的經(jīng)驗。3.2 文件上傳和下載的完整實現(xiàn)說完通信再講一個平時最容易被忽略、但真做起來很繁瑣的功能——文件上傳。H5里常見的場景是上傳頭像、上傳身份證照片、上傳視頻這些操作最終都要落到原生側(cè)的文件選擇器。重寫WebChromeClient的onShowFileChooser是關(guān)鍵。AgentWeb默認的WebChromeClient其實已經(jīng)幫你做了一層處理但如果你要自定義UI或者兼容某些機型還得自己重寫。大致流程是先接收WebChromeClient的回調(diào)參數(shù)創(chuàng)建選擇圖片或視頻的Intent再通過startActivityForResult啟動系統(tǒng)文件選擇器最后在onActivityResult里把選中的Uri交給回調(diào)。private ValueCallbackUri[] mUploadMessage; Override public boolean onShowFileChooser(WebView webView, ValueCallbackUri[] filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) { mUploadMessage filePathCallback; Intent intent fileChooserParams.createIntent(); startActivityForResult(intent, REQUEST_FILE_CHOOSER); return true; } Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode REQUEST_FILE_CHOOSER mUploadMessage ! null) { mUploadMessage.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(resultCode, data)); mUploadMessage null; } }這項實現(xiàn)里最容易出的問題就是回調(diào)對象沒有置空導致二次點擊無響應或者是用戶在取消選擇時沒有通知WebView頁面會一直卡在等待狀態(tài)。每次回調(diào)完成后記得馬上給mUploadMessage賦null。下載功能相對簡單。主要是給WebView設置DownloadListener在onDownloadStart里接管下載邏輯發(fā)起原生下載任務。這里有個業(yè)務上的考慮很多App其實不希望H5直接下載文件到本地而是希望跳轉(zhuǎn)到App內(nèi)的預覽頁你可以在onDownloadStart里做判斷符合預覽條件的走預覽不符合的走原生下載器。3.3 Cookie同步與登錄態(tài)保持H5頁面和原生頁面在一個App里并存最煩人的就是登錄態(tài)不一致。原生登錄了H5打開卻要求重新登錄這對用戶體驗的傷害是致命的。WebView的Cookie管理和原生網(wǎng)絡庫的Cookie默認是隔離的。AgentWeb雖然封裝了很多東西但Cookie同步這塊還是需要你自己動手。核心方案是用系統(tǒng)CookieManager做橋梁。當原生登錄成功后把服務端下發(fā)的Cookie同步到WebView的CookieManager里。拿到正常Cookie后調(diào)用CookieManager.getInstance().setAcceptCookie(true); CookieManager.getInstance().setCookie(https://example.com, cookieString);在Android 5.0之后還有第三方的Cookie策略需要打開if (Build.VERSION.SDK_INT Build.VERSION_CODES.LOLLIPOP) { CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true); }這里有個細節(jié)網(wǎng)上很多源碼直接setAcceptThirdPartyCookies為true但這會增加跨站追蹤的風險建議結(jié)合業(yè)務場景決定是否放開。最后還有一個同步時機的問題。當你用AgentWeb加載頁面時最好在WebViewClient的onPageStarted之前就確認Cookie已經(jīng)set進去否則頁面首次請求可能拿不到登錄態(tài)。如果WebView已經(jīng)加載了一部分頁面中途才同步Cookie得通過刷新一次頁面來讓Cookie生效。Cookie同步的寫法不難難的是理解為什么需要這樣。WebView內(nèi)部維護了一套獨立的Cookie存儲和Retrofit、OkHttp那套CookieJar是兩碼事你不手動同步兩邊登錄態(tài)就是各管各的。想通這一點以后遇到H5頁面反復要求登錄的問題排查思路就清晰了。4. 加載性能與體驗優(yōu)化4.1 緩存策略的幾個實用選擇混合開發(fā)里最影響用戶體驗的就是加載速度。WebView每次拉一個全新的HTML、JS、CSS等它渲染完用戶可能已經(jīng)不耐煩了。緩存策略是優(yōu)化這條鏈路最直接的手段。AgentWeb默認的緩存模式可能不是最優(yōu)的需要配合WebSettings的setCacheMode來控制。我常用的組合是在應用啟動后的首個頁面用LOAD_CACHE_ELSE_NETWORK讓用戶盡可能秒開頁面在需要強制獲取最新數(shù)據(jù)的頁面用LOAD_NO_CACHE保證數(shù)據(jù)一致性。WebSettings settings mAgentWeb.getWebCreator().getWebView().getSettings(); settings.setCacheMode(WebSettings.LOAD_DEFAULT);更深一層的優(yōu)化是做離線包預加載。把H5項目打成zip包推到本地WebView優(yōu)先加載本地資源再通過更新接口拉增量補丁。這個方案雖然要額外維護資源版本管理但對加載速度的提升是質(zhì)的飛躍電商大促活動頁基本都會用。還有一個被忽略的性能點DNS和TCP建連。如果你能提前知道H5要用到的域名可以在App啟動后做預連接。Android原生層面沒有直接暴露Socket連接池的接口但可以通過提前加載一個隱藏的WebView來預熱內(nèi)核。這個做法比較粗暴好處是代碼量少壞處是會多占內(nèi)存適合用在小流量高價值的場景里。4.2 加載狀態(tài)、錯誤頁與JS注入時機頁面加載狀態(tài)是混合開發(fā)里最容易影響體驗的盲區(qū)。H5加載可能幾秒也可能十幾秒期間如果沒有任何反饋用戶會以為卡死了。AgentWeb的默認進度條能覆蓋基礎反饋但你還需要一個超時兜底機制。可以給WebChromeClient的onProgressChanged設置閾值比如進度超過80%就認為頁面基本加載完成此時隱藏loading框。同時另開一個計時器在4到5秒內(nèi)如果沒有觸發(fā)onProgressChanged就給用戶彈一個弱提示讓用戶知道頁面還在加載中。網(wǎng)絡錯誤是另一個???。onReceivedError里要判斷errorCode常見的-6、-7這類網(wǎng)絡錯誤可以統(tǒng)一展示自定義錯誤頁。如果只是某個子資源加載失敗不建議整頁替換成錯誤頁否則頁面主內(nèi)容可用但被錯誤提示擋住體驗更差。JS注入時機特別強調(diào)一下。很多開發(fā)者喜歡在onPageFinished里執(zhí)行JS但這個回調(diào)在AgentWeb里也存在觸發(fā)不準的坑。實際項目里有些網(wǎng)站在onPageFinished之后還會繼續(xù)加載異步資源和二次渲染你需要用DOMContentLoaded或者輪詢判斷頁面整體的JS執(zhí)行狀態(tài)。對業(yè)務關(guān)鍵的JS注入建議用runOnUiThread包一層再調(diào)用保證執(zhí)行時主線程空閑且頁面渲染引擎已經(jīng)就緒。4.3 安全與隱私配置關(guān)于WebView的默認配置網(wǎng)上很多模板代碼直接打開JavaScriptEnabled、打開DOMStorageEnabled、打開AllowFileAccess看上去能用安全隱患卻不小。我的習慣是盡量遵循最小權(quán)限原則。默認情況下不打開FileAccess因為一旦H5代碼被注入或者XSS攻擊攻擊者就能通過file協(xié)議讀取本地文件。如果業(yè)務確實需要打開遠程頁面的文件訪問能力也應該做域名白名單限制。AgentWeb內(nèi)部對常用安全配置做了封裝基于它的默認配置去微調(diào)比從零手寫靠譜。定位權(quán)限最大的問題是靜默授權(quán)。H5頁面調(diào)用getCurrentPositionWebView會直接彈定位授權(quán)框用戶可以選擇同意或拒絕。但有些WebView版本會自動繼承原生的定位權(quán)限導致用戶還沒明白怎么回事定位就被獲取了。這種情況要在自己實現(xiàn)GeolocationPermissions回調(diào)時做精確控制至少讓用戶知道頁面要做什么。5. 高頻問題排查與個人避坑實錄5.1 一口氣理清6個高頻問題我把這段時間在群里看到、自己踩過的高頻問題整理成一個速查表寫代碼的時候?qū)φ罩橐槐槟苁∠虏簧倥挪闀r間?,F(xiàn)象可能原因解決方案H5調(diào)用原生方法無響應缺少JavascriptInterface注解或混淆后類名被混淆檢查注解、添加keep規(guī)則返回鍵直接退出ActivityWebView內(nèi)部有歷史棧但未攔截返回實現(xiàn)BackHandledWebView、調(diào)用mAgentWeb.back()文件上傳按鈕沒反應未重寫onShowFileChooser或回調(diào)未置空重寫回調(diào)、onActivityResult里正確回調(diào)頁面登錄態(tài)丟失WebView的Cookie和原生網(wǎng)絡Cookie未同步用CookieManager手動同步頁面白屏/加載失敗HTTPS混合內(nèi)容被限制、網(wǎng)絡錯誤配置MixedContentMode、自定義錯誤頁Activity關(guān)閉后內(nèi)存不降WebView未destroy、容器未移除getWebLifeCycle().onDestroy()、置空引用這幾個問題里登錄態(tài)丟失和白屏最容易在正式環(huán)境才暴露測試環(huán)境網(wǎng)絡好、域名干凈往往發(fā)現(xiàn)不了問題。我建議在上線前專門跑一個弱網(wǎng)和切后臺的測試用例集把WebView的問題提前暴露掉。5.2 我踩過的幾個真實坑第一個坑是WebView重復創(chuàng)建導致的頁面錯亂。早期某個金融類App我在Activity里直接用成員變量持有AgentWeb實例結(jié)果屏幕旋轉(zhuǎn)時Activity重建舊的WebView沒銷毀新的又創(chuàng)建了頁面上會出現(xiàn)兩個WebView疊加的詭異現(xiàn)象。后面改成由容器驅(qū)動、在onDestroy里徹底釋放AgentWeb并置空所有引用才算穩(wěn)定下來。第二個坑是JS調(diào)用時機太早。有些H5頁面在iOS上正常在Android上卻偶爾拿不到原生返回的數(shù)據(jù)。排查后發(fā)現(xiàn)是原生調(diào)用quickCallJs的時間點過早H5那邊的全局方法還沒掛載完。解決方案是在onPageFinished后延遲100毫秒再調(diào)用或者讓H5主動發(fā)起拉取原生被動返回?,F(xiàn)在遇到不確定的時序我都默認改成H5主動拉模式寧可多一次通信也不要搶執(zhí)行時機。第三個坑比較冷門是部分系統(tǒng)ROM的WebView多進程崩潰。某次灰度期間小部分用戶反饋打開H5頁面直接閃退日志顯示是render進程崩潰。這類問題的根因可能是ROM的WebView實現(xiàn)和AgentWeb的某些默認配置沖突。我的兜底方案是在崩潰時捕獲異常通過自定義頁面引導用戶重啟頁面并主動提示升級系統(tǒng)WebView組件。雖不是銀彈但至少能把崩潰影響范圍壓到最小。第四個坑是文件選擇回調(diào)的重復觸發(fā)。當用戶在系統(tǒng)文件選擇器里點擊取消時某些機型會觸發(fā)兩次onShowFileChooser回調(diào)如果沒有把舊回調(diào)清掉第二次進入時會拿到臟數(shù)據(jù)表現(xiàn)在上傳頁面上就是選了圖片卻沒反應。這個問題的處理很簡單每次新回調(diào)進來前先判斷mUploadMessage是否為空不為空就先給它傳null防止舊回調(diào)阻塞新回調(diào)。5.3 還沒完后續(xù)系列還能聊什么到這一步AgentWeb的基礎接入和常用功能基本覆蓋了但這個話題其實還遠沒講完。我后續(xù)計劃把WebView容器組件化改造、統(tǒng)一JSBridge協(xié)議、多WebView實例復用以及Native與H5的數(shù)據(jù)埋點上報單獨拎出來寫每個點單獨成篇會比這次的一鍋燉更深入。特別是WebView容器組件化跨模塊跳轉(zhuǎn)H5的場景越來越常見如果每個模塊都自己初始化一個AgentWeb不僅代碼重復連接數(shù)、Cookie管理都會亂套。業(yè)內(nèi)比較常見的做法是做統(tǒng)一的WebView容器SDK上層業(yè)務只傳URL和各色參數(shù)容器內(nèi)部負責所有WebView邏輯和埋點上報。這個改造思路我會在系列第二篇里詳細展開。最后說點個人體會。AgentWeb這種封裝庫用起來確實省心但也別養(yǎng)成只會調(diào)API的習慣。WebView的官方文檔、不同系統(tǒng)版本的行為差異有時間還是要翻一翻。封裝庫幫你擋掉了大部分雷但理解底層原理你才能在被封裝庫“攔不住”的極端問題面前穩(wěn)住陣腳?;旌祥_發(fā)沒有銀彈把基礎原理和框架特性兩頭吃透頁面才不會在你最忙的時候突然出幺蛾子。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
刺激精品视频| 骚货人妻偷情自拍在线视频| 2017天天透天天通天天擦| 久久久久久国产手机AV| 无码av永久免费专区网站| 久久久久久裸体| 天天干美少妇一区| 99热只有这里有精品| 好吊色综合| 97欧美久久久久久久| wwwss在线观看| 欧美日韩色综合网| 超碰成人人人爽人人爽| 在线观看啊啊啊啊啊| av操操不卡| 久久99网站| 干日本人少妇午夜寂寞影院| 日韩熟女无码| 国产深夜福利| 超碰97男女| 性九九九九九九| 一区二区三区国产精产| 久久女人一区二区三区| 99精品久久久久久久婷婷蜜桃| 成人无遮挡毛片免费看| 日韩三级在线观看网站| 男啪女色黄无遮挡免费观看| 九久精品| 亚洲日韩美女丝袜美腿人妻视频| 久久精品国产97欧美精品亚洲| 天天综合网在线91| 国产AV天美传媒一区二区三区 | 9l视频自拍9l九色成人| 欧美强奸乱| 中文字幕精品一区二| 精品蜜乳AV免费观看| 国产精品久久泡妞网站| 超碰在线免费一区二区三区| 97欧美日韩综合| 物业黑人 AV一区| 一区二三区四区视频大全套| 超碰久草| 久久男人的天堂| 精品视频久久| 精品蜜乳AV免费观看| 欧美97| 亚洲97精品| 91精品人妻一品二品三品| 中文字幕欧美精品亚洲日韩蜜臀| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 密臀成人视频久久久| 国产欧洲精品亚洲午夜拍精品| 日韩精品在线观看观看| 免费亚洲黄色视频在线观看| 亚洲中文一区二区三区| 色一色综合网| 自拍鲍鱼一区在线高清观看免费| 九九99久久| 精品性爱无码在线播放| 亚洲情色一区综合| 九区国产| 东北女人高潮视频| av中亚| 国产福利精品98视频| 国产捆绑一区| 免费的很黄很污的全部视频 | 可以看的av| 亚洲天堂电影精品一区| 亚洲日韩青青草色月| 一区二区不卡| 東南亚性呦成人伦理资源在线视频| 激情小说亚洲色图| 婷婷五月天激情四射| 亚洲情色91| 欧美精品偷拍| 九九热AV| 99精品久久久久久久婷婷蜜桃| 亚洲激情AV| 人妻出轨一区二区三区| 久久这里只| 艹精品| 日韩人妻少妇 一区二区三区| 国产天天骚| 日韩不卡一二三四| 1区2区3区视频| 日本高清免费一本视频在线观看| julia在线观看久久| 欧美性天天影院| 欧美亚洲首页| 亚洲无码免费看| 久久精品人体AV| oumeizonghese,www| 久久久涩| 激情视屏国产乱伦强奸| 欧美丝袜激情| 97综合在线| 国产精选三级在线观看| 久久久久久久久国产| 性猛交| 性色av网站| 日韩BBN| 亚洲色图欧美色图另类图片| 中文字幕性感少妇av| 啊啊啊好湿久久| 欧美性高潮| 亚洲精品啪视频| 91 丝袜在线| 国产久久免费精品视频| 日韩99神马视频播放片在线播放| 日本久久久久久久久久| 國產尤物AV尤物在線觀看| 蜜桃久久久久久久| 色欧洲| 99热成人| 成人九九| 人妻激情另类| 亚洲天堂中文字| 99热免费| 久草精品国产99| 九九视品黄色| 在线中文字幕| 亚洲污污网站| 欧美成人午夜免费福利785| 久久亚洲熟妇在线视频| 一起草日韩| 久久久久久9999| 日韩视频中文字幕| 青苹果影院男人的天堂| 一区二区三区美女超清| 久插不卡| 国产黄片精品在线| 精品无码产区一区二| 在线国产福利网址导航 | 天天做天天爱| 人妻夜夜爽天天爽麻豆三区网站| 秋霞操逼片| 午夜天堂网| 9久在线视频只有精品| 97香焦色区| 天久久久噜噜噜久久国产精品爽爽 | 欧美大的香蕉有线电视视频| 黑操B| 亚洲精品97| 九九九九88| 欧美1区二区三区公司| 日韩欧美偷拍美女视频| 综合久久久久久久综合网| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 久久中久文96| 六月丁香啪啪啪| 国产精品网址| 精品视频一区二区| 看一级黄色视频| 国产日韩美女小穴视频网站不卡| 亚洲男人的天堂V| 天堂俺去俺来也www久久婷婷| 中国熟女91| 玖玖婷婷五月天| 亚洲成a人v欧美综合天堂下载 | 欧美在线天堂| 亚洲色图 图片| 九九综合久久| 国产综合色精品在线观看| 热久日综合| 天天看,天天做| 精品国产Av无码久久久亚洲| 久久婷婷一区| 大香蕉啪啪啪啪在线| 国产高清成人传媒影视| 日韩无码精品综合久久| 夜夜黄| 艾草av| 大香蕉强奸乱伦| 郑州宾馆老熟女露脸啪啪| 精品玖九九久| 亚洲男人的天堂网| 影音综合网| 亚洲最大的综合性av| 96一区二区| 性老妇一区二区三区| 97人人射| 欧美在线观看综合国产| 九月丁香婷婷色| 欧综合网| 久久久精选| 骚人妻少妇视频| 日本丝袜美腿人妻九九| 亚洲欧美精品一区天堂久久 | 欧美日韩国产在线| 一级啊性爱在线视频| 欧美日韩午夜精品一区二区三区| 花花AV导航| 亚洲第91页 | 国产乱码久久久| 校园春色中文字幕AV| 欧美78p| 久久精品店| 国产女乱淫真高清免费视频| 3028国产精品| 久久东京伊人一本到鬼色| 国产 日韩,欧美 自拍| 亚洲 欧美 第一页 | 国产精品久久久无码aV去| 日本欧美不卡| 日日骚av| 日韩精品三级| 91少妇| 欧美成人精品欧美一级乱黄一区二… | 亚洲91射| 人妻天堂网| 国产农村妇女毛片精品久久| 亚洲在线91| 性欧美91| 久久久久久久强迫| 人妻无一区二区三区| 黄色大片视频在线免费看| 亚洲91网| 五码视频在线观看| 岛国大片国产| 色呦呦呦在线观看视频| 国产大学生高潮在线播放| 久久久久国产精品片区无码直播| 国产福利影视| 亚洲AV成人在线| 九九色婷婷| 色五月婷婷久久| 日本99视频| 亚洲午夜免费狠狠干| 天堂av2019| 大稥蕉免费视频这里只有精品| 91是天天| 亚洲天堂日本| 九九九九九九精品| 国产精品诱惑| 日本精品网站在线中文| 色婷亚洲五月在线观看| 天美av在线观看| 精品人妻夜夜草| 亚洲激情色片 | 入口操逼网站| 好淫网一二三视区| 91麻豆一二三区| 91精品操美女| 亚洲另类春色| 国产精品呦一区二区三区| 日韩黄色成人性爱| 宅男午夜在线视频| 91性| av亚欧| 四虎影视永久在线免费| 9l视频自拍9l九色成人| 999久久久九| 高潮综合网| 日韩精品啪啪啪| 国产丝袜美女在线一区| a久久| 躁躁日曰躁2020| 91性网| 国产一区二区在线播放量| 国产精品岛国片在线观看| 精品精品精品| 99视频这有这里有精品| 爱av免费| 久久久久久波多野吉衣高潮| 97超碰站| 亚洲成人久久美女| 麻豆精品三区视频| a片在线播放| 午夜免费福利视频一区| 久久超碰大香蕉| 久久精品电影在线| 欧美东京热精品A∨| 精品免费1| 综合亚州欧美| 操逼视频亚洲| 亚洲男人天堂2016| 日韩国产精品人妻无码久久久| 亚洲国产高清福利视频| 日本精品免费一区二区三区四区| 热热色中文无码| 3P乱轮视频| 蜜伊人色综合97| 婷婷激情四射| 激情五月综合| 亚洲少妇视频| 99热超碰在线| 黑人性欧美| 日人妻视频91| 亚拍在线| 日本高清一区二区在线| 久久风骚城市| 国产超碰| 色欲久久99国产精品久久久久久| 五月婷婷色| 九九九不卡| 99热99色| 粉嫩av在线| 欧美1727免费观看视频| 国产馆| 大香蕉碰碰| 超碰在线免费一区二区三区| 国产伦精品免编号公布| 亚洲色婷婷久久91| 久久久久元码视频| 99日韩| 国产激情在线| 亚洲不卡不卡中文字幕不卡| 免费精品中文字幕| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 蜜乳AV一区| 成人欧美日超碰| 色噜噜精品一区二区三| 啊啊啊好大好深| 五月天色图影视| 国产传媒日韩欧美| 2000亚洲男人天堂| 日本高清一区二区在线| 国产精品乱码久久久| 欧美色偷拍 | 无码免费精品高清| 97资源亚洲| 中文字幕二区日韩天堂| 国产三级资源在线观看| 欧美综合色综合| 欧美顶级黄片AAAAA在线免费看 | 97视频观看| 91精品人妻偷情| 啊啊啊啊啊啊啊啊啊啊在线观看| 欧美日韩中文亚洲v在线综合| 大鸡巴久久| 少妇蜜汁| 亚洲国产婷婷在线播放| 人人操人人肉久久精品| 国产精品午夜成人福利| 久久婷婷综合国际产色怕| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照 | 久久91视频| 久操| 91暧暧| 顶级丝袜熟女一区二区三区| 99999久久精| 国产久久久9999| 日本Xx性爱| 国产精品视屏| 日韩午夜国产| 久久久九97| 日韩激情小说一区二区| 狠狠躁伊人中文字幕| 国产夫妻一区二区| 亚洲一区二区性爱电影| 日本不卡一区二区| 超碰美女97| 亚州精品丝袜-不卡成人免费| 岛国在线一区二区三区| 好色综合| 人人操人人肉久久精品| 91N综合网在线| 在线观看精品国产免费| 黄色av网站在线播放| 国产人妻久久精品一区二区三区| 国产精品欧美激在线| 国产91久久九九免费精品无码| 亚洲无码com| 东北女人性交| 欧美熟女丝袜| 97激情97激情| 嗯嗯,啊啊,国产精品| 美女国产一区二区久久| 欧美gv在线观看| 午夜啊啊| 在线二区不卡| 亚洲青青草| 中文字幕视频在线观看一区二区| 激情av| 亚洲成熟国产精品美女| 老熟女乱伦片| 一区二区视频在看| 深夜激情| 91天天综合在线观看| 18岁禁 茉莉成人久久| 黑丝少妇在线观看| 九九热精品在线| 日本女人操逼| 另类专区在线观看| 伦理片秋霞免费影院| 很黄很色的视频在线观看| 日本操逼视频不卡直接放| 综合夜夜| 91狠狠综| www.av家庭乱伦| 白嫩少妇| 人人操 欧美| 粉嫩av在线| 亚洲在饯| 思思视频免费看网站| 亚洲AV麻豆Aⅴ无码电影一| 91亚洲最新在线| 爱丝福利| 69一区二区三区| 国产精品久久久久婷婷二区次| 亚洲春色欧美| 亚洲一区二区av| 试看60秒 爽| 999精品久久久久久久| 国产97视频| 亚洲自拍97| 国产又黄又粗又猛大片| 日韩熟女无码| 狼狼色丁香久久婷婷综合五月| 五十路六十路七十路熟婆| 日韩操啪| 操逼天美3区| 无码精品一区二区三区潘金莲| 亚洲精品官网在线观看| 人人做,人人操,人人摸| 国产剧情AV不卡在线观看| 亚洲欧美在线观看2021| 超碰在线99| 亚洲熟妇乱女区二区三区| 日韩av色图综合| 长长久久曰曰夜夜成人网| 久久伊人在线五区| Blackedraw视频一区二区| 性做久久久久久久| 五月丁香综合网| 性爱乱伦一区| 啪啪视频mP4| 你懂的在线观看区国产| av天堂手机版追回| 青青青国产| 男人网站婷婷| 麻豆区久久久久亚| 亚洲影视综合| 2018天天干在线视频| 丁香九月婷婷| 爱射综合| 九九激情网| 91一区二区| 久久久久亚洲av综合波多野制衣| 日韩精品国产一区二区| 欧美在线播放aaaa| 欧美三级免费伊人| 一二区在线观看视频| 中文字幕久久精视频久久大全| 青青操狠狠撩| 青青操在线视频| 日本天堂在线播放| 4399成人黄A片| 一级做a爰片性色毛片久久| 亚洲国产精品无码AV在线| 无套内射人妻在线播放| 欧美天天谢综合网| 欧美日韩亚洲高清不卡一区二区三区| 国产精品精品系列在线观看| 色99视频| 亚洲的天堂网| 精品一级毛片在线观看| site:sinbotex.com| 久久人人舔人人爽舔人人av片| 久久人妻视频网| 伊人影院在线理论播放| 日韩卡一卡二卡三在线| 96国产精品| 欧美精品久久久久久久丰满| 综合久久六月久久婷婷| 肉嘟嘟www视频在线观看高清| 婷婷九月国产| 欧美日产国产在线成人第一区| 欧美操逼一二三区| 亚洲综合色在线| 夜夜操青青草| 国产福利夜| 久久黄人人爽视频| 日本不卡高清视频| 久久精品国产久精国产| 欧美激情另类一区二区| 妇女视频网站| 天天操天天干一区二区 | 97色综合中文网| 色噜噜人妻丝袜a∨先锋影| 天欧美在线| 色五天伊人| 加勒比综合九九99视频在线播放| 中字幕人妻一区二区三区| 精品免费1| 伊人久久AV诱惑悠悠| 亚洲日韩精品在线播放| 91色射| 秋霞免费AV| 2019午夜福利视频| 欧美,日韩,亚洲视频| 丰满少妇精品一区二区| 日本九九九九| 97视频免费播放| 欧美劲爆视频一区二区| 男人的天堂va在线| 欧美另类色图片| 97视频在线看| 97色涩| 2019久久久久久久久福利| 久久久男人的天堂| 亚洲成人性爱在线观看| 亚洲综合九九| 91亚州欧美| 美女黄色91| 亚洲性爱电影| 亚洲欲| 色五月婷婷在线| 亚洲欧美日韩激情不卡| 亚洲美女精品| 99热99在线播放激情| 麻豆熟妇乱妇熟色A片在线看| 男人天堂2019亚洲| 1000部熟女视频在线观看| 超碰98综合网| 蜜臀少妇一区二区| 日韩免费高清大片在线| 后入福利视频| 91欧美经典| 99在线免费公开视频| 日熟女| 国产第11页| 人人做,人人操,人人摸| 日本大香蕉| 老熟女搡BBBB搡BBBB视频| 97在线视频观看| 亚洲中文国际强奸字幕| 97在线观| www.人人摸在线视频| 久久香蕉超碰97国产精品| 久久久久国产精品片区无码直播| 天天日天天干天天操| 亚洲素人网| 午夜国产综合视频在线观看 | 超碰在线综合97| 99999精品视频| 在线可观看的黄色网址| 日语五十路和六十路亚洲国产精品| 亚洲久草AV色图| 天天操女人| 亚洲最大AV网| 一区二区三区不卡视频| 97爱啪| 4141514逼喷水三级片| 在线啊v一区| 中日韩久久久| 精品蜜乳AV免费观看| 久久9免费视频| 久久久久亚洲一区女同性恋中文字幕| 99精品无码| 成人性爱美曰韩| 久久久精品| 亚洲综合999| 国产夫妻性生活视频| 91网站18在线| 抽插爽| 99热色这里只有精品| 综合欧美日本三级| 日韩国产中文字幕| 中国一区二区亚洲人妻| 操逼免费视频无码国产| 日韩在线国产字幕| 玖玖久久久| 国产日韩美女小穴视频网站不卡| 死我十八禁| 欧美最大综合网| 91处女视频在线观看| 一区二区首页| 日本日日色视频| 校园春色欧美色图| 97亚洲一区| 玖玖蜜臀资源网| 男人的天堂2018.| 欧美专区在线| 99re6久热只有精品6在线直播 | 1204金沙人妻懂旧版免费| 最新岛国大片| 国产a片操逼| 97视频新免费| 国内成人圈中文字幕无码视频| 蜜桃色院一区久久| 91女优在线观看| 欧美在线综合| 欧美,日韩,中文,另类| 亚州欧美在线| 欧美日韩久久精品爱爱| 欧美男人天堂| 欧美aa一级片| 操逼日韩无码| 中文字幕在线免费观看2| 欧美日韩人妻婷婷一区| 亚洲日韩久久精品一区| 亚洲AV不卡在线观看尤物| 91熟女熟妇视频网站| 91久久国外网| 欧美日韩人人精品| 成人精品视频| 美女十八禁| 麻豆天美一区二区| 强奸乱伦AV网站| 天操天操夜操夜月月年年操操| 亚洲国产麻豆一区二区三区| 欧美超碰97| 在线视频亚洲无码| 香蕉人人操tv| 小少妇| 激情四射婷婷六月天| 中日无幕一二三四区| 啪啪91| 婷婷探花久久精品一区| 91在线视频国产网站| 人人操人人摸人人看人人插| 亚洲欧美经典一区二区| 亚洲欧美精品福利在线| 97玖玖人妻| 97超碰精品成| 思思在线免费视频| 97人肏| 亚洲日韩欧美一区二区| 日日爱99| 久久草大香蕉| 天堂射| 亚洲黑人在线| 99在线精品观看99| 国产精品视频播放| 97视频在线看| 人妻少妇精品一区二区三区| 男人的天堂在线| 91欧美亚洲| 色婷婷丁香五月天| 免费亚洲国产精品久久一区| 亚洲久久久久| 长长久久曰曰夜夜成人网| 91 综合 色| 成人性爱免费播放| 天天干2区3区| 97网色| 久久无码电影| 夜夜夜夜爽| 少妇啪啪自拍| 啊啊啊啊啊在线观看网址| 三四中文字幕| www.人人cao| 精品一二三区四视频| 国产精品久久天天干| 久久五月份| 国产免费小视频| 超碰在线国产| 日本ZZ高免费A级视频| 亚洲欧美在线观看免费| 国产视频第2页| A片大香蕉在线| 插入综合网| 欧美不卡五十路| 1区2区3区在线视频| 日韩91网站| 色综合98| 中文操逼字幕| 婷婷五月天小说| 丰满人妻一区二区三区免费| 久久精彩免费视频| 日韩大香蕉| 黄页18禁| 精品蜜乳AV免费观看| 欧美色997| 超碰国产精品无码| 国产熟妇一区二区| 乱伦av.com| 久久久久极品| 国产女人成人精品视频| 久久二| 97人肏| 91免费看一区二区三区| 丰满精品人妻少妇久久字幕| 26uuu国产日韩综合在线观看| 一二三啪啪专区| 亚洲性爱免费电影| 中文字幕精品三级久久久| 欧美成人性爱视频免费观看 | 97超碰欧美精品| 澳门成人网站久国产日韩| A级国产欧美激情在线| 偷窥自拍亚洲色图| 久久久久亚洲熟妇熟女| 亚州色图片在线色| 水澄无码AV| 秋霞网无码| 亚洲色悠悠久久88| 五月综合视频| 国产日韩精品suv| 日韩无码AB| 人妻少妇久久久| 欧美性爽xyxOOOO| 伊人青青一区成人视频在线观看区| 一本精品日本在线视频精品| 97精品视频在线| 刺激性视频黄页| 色色色色日本| 蜜臀久久99精品久久久久久成人小说| 日本一二三高清| 18禁中文字幕| 久久e6只有精品| 婷婷色播婷婷| www.av不卡中文字幕| 欧美亚洲玖玖玖| 国产又黄又爽又刺激久久久久久 | 啊啊啊好大好深| 韩日男人的天堂| 99久久婷婷国产综合精品草原| 人人澡人人澡人人| 久久99黄色卞西瓜| 强奸乱亚洲| 国产无码精品无码| 亚洲欧美综合图片| 日韩无码久久熟女一级片| 日韩人妻资源在线看| 成年人性爱日韩| 日韩成人高清一区二区| 亚洲人精品久久久| 日韩精品作爱导航| 91亚洲黑人| 日韩免费看黄片| 欧美午夜视频免费观看| 老妇女91| 亚洲自拍一区夜夜操| 日韩伦理视频| 99热婷婷| 五月丁香狠狠爱| 2019天天干天天操| 88xx成人精品视频| 大奶的诱惑| 国产成人啪一区二区| 丁香婷婷激情五月天无毒不卡 | 色噜噜国产在线| 天天爽天天爽| 亚洲 欧美日韩 另类| 色色网91| 370p日韩欧美亚洲精品| 中文字幕蜜乳av| 欧美色涩| 欧美综合91| 97亚洲中文| 中文字幕制服诱惑| 国产嫩草精品A88AV| 亚州综合AⅤ| 青青草成人视频在线观看二区| 亚州成人A√| 久久綜合很很很| 久久25| 青青草密桃在线播放| 天美传媒国产原创中文字幕亚洲欧美另类 | 欧美综合第一页| 精品视频一区二区| 美女91AV| 亚洲久久久久| 九九热AV| 熟妇xxxxx性春色| 国产高清精品一区二区三区毛片 | 亚洲蜜桃V妇女| 911粉嫩人妻| 十八禁啪啦拍视频无遮挡| 亚洲欧美国产其他二区| 久久怡红院| 夜色五月天| 99999精品成人| 绑缚麻绳人妻寝取完整版| 99热aaa| 高清不卡 中文 人妻| 操老熟女AV| 人妻欧美| 国产无码精品成人| 欧美黄片免费在线观看视频| 男女一级A片大黄,一进一出| 久操操| 色情亚洲日本成人| 97一本大道亚洲一区| 9997se| 97亚洲欧美| 亚洲在线网站| 久久99午夜精品一区人妻| 成年女人18级毛片毛片免费观看| 久久东京国产精品视频| 嗯嗯嗯嗯啊啊啊好紧好大| 二区熟妇韩日| 色婷婷日韩精品一区二区三区| 日本布卡一区二三区| 热99re69精品8在线播放| 国产成人精品必看| 超碰在线看| 久久亚洲人妻| 99精品无码| 日韩欧美性爱电影在线观看| 成人性爱高清视频免费看| 五月丁香亭亭| 龙兴卡官方查询| 天天综合青苹果| 九月激情婷婷| 国产超碰国产97| 成熟熟女国产精品一区二区| 亚洲久久久| 美国一区二区三区视频| 操逼无码一区| 白丝1区2区3区| 一二视频神马久久传媒| 免费视频在线一区二区不卡| 91人妻尻屄视频| 9999伦理视频| 九九九国产精品| 婷婷丁香九月| 久久久久久久一级黄色打同平台| 精品无码产区一区二| 美女诱惑一区| 成人免费不卡在线视频| 天美传媒AV国产在线| 中文三一区| hd成人一区二区在线| 蜜臀AV一区二区三区激情综合| 97爱亚洲综合色| 东京热双插| av婷婷色婷婷色六月| 好屌色综合| 97视频网站| www.黄色在线| 丁香婷婷激情五月天无毒不卡 | 懂色中文一区二区三区 | 国产在线视频午夜精华在| 国产福利精品最新在线| 中文字幕第23区| 国产真乱mangent| 日本天堂网| 国产精品乱码久久久久| 日本国产欧美高清在线| 精人妻无码一区二区三区伊人直播 | 高清国产成人无码| 欧美日韩少妇色情| 97亚洲综合| 色综合中文字幕不卡| 男人天堂新| 99在线无码精品秘 入口黑人| 伊蕉97蜜桃97狠狠综合干| 91夜色| 丰满翘臀美女影院视频| 亚洲资源站| 亚洲18禁| 欧美激情久操网| 日韩人妻资源网| 日本不卡一区二区| 精品少妇一区二区三区免费观看| 99精品人妻| 六九九九| 国产家庭乱伦表演| 日韩天堂av电影在线观看| 久久午夜鲁丝片| 久久超碰、| 性暴力欧美猛交在线直播| 亚洲熟女一区| 丰满岳乱妇一区二区三区| 97超色| 美女被艹尤物视频| 中文字幕精品码亚洲| 久久久一区二区三区四曲免费听 | 久思思热视频在线观看| 亚洲揄拍网| 色色香蕉| 99re视频在线播放青草| 99性爱| 无码操逼视频一下| 国产十八禁视频| 8050午夜少妇无码| 欧美日韩国产精品久久色婷婷| 欧美操逼一二三区| 热99这里有精品综合久久| 蜜桃臀 后入 一区 二区 三区 在线| 操婢日韩| 破处bbq| 国产视频三区四区| 伊人丁香五月婷婷| 色原狠狠天天天| 亚洲91极品| 亚洲免费在线探花| 欧美BT 亚洲色图| 日欧美色| 欧美强奸一区二区诱惑| 啊啊啊啊在线播放| 精品国产一区二区久久| 亚洲天天做日日做天天谢日日| 日日躁狠狠躁天天躁精品| 国色天香av| 一区二区视频在线播放| 久久一区二区蜜桃| 久久精品中文| 韩日精品四区| 国产综合网站在线播放| 欧美高清16| 99久久com免费视频′| 嫩草影院在线观看精品| 激情欧美97| 激情婷婷丁香| 日韩欧美视频青青| 黄色欧美性爱视频| 精品人妻一区二区免费蜜桃视频| 97天天插| 青青草吊丝| 激情综合五月| 99热99在线播放激情| 青娱乐福利99| 91美| 欧美大片一区二区三区| 五月天综合在线| 亚洲精品xxx| 亚洲欧美人妻| 久久久三区二区一区| 台湾肥佬网一区二区三区| 欧美日韩999| 亚洲第一精品在线视频| 日韩免费中文字幕视频| 中文字幕熟女人妻丝袜丝| 999 久久久| 亚洲、日韩、综合、另类| av天堂影视中文在字幕在线中文| 伊人网综合在线视频| 欧美成人A√在线一区二区| 国产精品另类| 精品视频97| 啊嗯好大视频在线观看| 99热这里只有精品9| www.色婷婷色综合| 国产精品呦一区二区三区| 亚洲国产精品成人综合| 69精品| 91亚洲欧洲| 亚洲中文字幕久久无码精品| 中文字幕二区| AV中文字幕剧情1区2区3| 久久色一区二区| 久久嫩草国产成人一区| sss视频华人在线| 东京热激情视频一二三区| 男人的天堂2010| 亚洲五月婷婷| 亚洲激情综合| 日本色婷婷| 婷婷综合五月天| 久色网| 性色一线| 裸体美女国产免费久久久网站| 天天干少妇| 精品色色| 亚洲s在线观看| 亚洲中文字幕妇伦久久| 成人精品视频一区二区| 成 人 影视 一区 二区 三区 四区 | 操逼网站视频漫画国产| 国产高清成人传媒影视| 在线人人人人人人精品超 | 久久久久久中文版| 亚洲综合情色| 伊人少妇久久久| 欧美—性—交—色| 91色欧美| 日韩精品中文字幕人妻| 老熟女搡BBBB搡BBBB视频| 美女操逼福利视频| www欧美性爱| 丰满欧美少妇| 夜夜狼人妻| 丝袜色综合| 亚洲情色 自拍| 搡老熟女免费视频| 91av一区二区在线观看| 国产人妻天天干精品| 亚洲色欧美| 亚洲高清在线se| 4tube欧美女厕所| 九九这里只有精品| 欧美天天性| 三级精品三级在线观看| 秋霞无码av鲁丝片一区| 久久99亚洲精品久久99果| 91爱综合| 神马久久啊啊| 亚洲性高潮| 黄色大片视频在线免费看| 国产精品久久99日日| 国产在线精品偷| 国产夫妻一区二区| 91强在线播放| 五月天亚洲色图| 成全在线观看免费观看| 色婷五月天| 久久伊人网视频一区二区三区 | 裸体1区| 日韩有码专区| 搞中出久久| 天天操夜夜嗨| 久久国产三区| 亚洲综合色图欧美| 日本操BAV| 91九色首页| 中文字幕一区日韩精| 欧美很很操视频| 狠狠操狠狠插| 免看60秒涩涩视频| 久久色精品视频在线| av中文字幕在线熟女| 久久久专区| 亚洲欧美日韩中文播放| 国产人伦a片信息免费片| 旡码电影特区| 男人天堂久久精品不卡| av一区二区三区四区| 吖在线不卡一区二区国产剧情| 志村玲子视频一区二区| 中文字幕精品乱码| 亚洲天堂男| 国产免费一区在线观看| 少妇三P| 亚洲综合第一页| 人人操人人大香蕉| 青娱乐手机日韩在线视频| 亚洲色欧美| 五月天婷婷激情| 中文欧丝袜诱惑| 欧美一区二区三区四区综合| 花野真衣| 亚洲在线a| 能直接看AV的网站| 欧美日韩人妻婷婷一区| 内射老妇BBWX0C0CK| 97天天爽| 精品无码久久久久久久久果冻糖心 | 日韩精品-原创伙伴| 国产尹人在线视频免费| 欧美变态激情网| 久久黄色视频一区二区三区| 男人的天堂2018东京热啪啪啪| 2017天天插| 精品一区二区成人| 骚人妻少妇视频| 无码高清专| 91少妇香蕉久久精品| 日韩性爱毛片操骚逼| 久久综合精品一区二区三区| 亚州熟女乱伦| 中文字幕一区二区三区蜜臀| 精品人成视频在线观看| 日韩人妻少妇中文字幕| 91无码西班牙视频在线| 国产13区| 国产毛片毛片4p懂色| 中文字幕av久久爽Av| 明星性猛交ⅹxxx乱大交| 中文字幕乱碼在线| 尤物av网站免费在线播放| 日本丝袜美腿人妻九九| 久久伊人最新网址视频| 丝袜无码a片| 偷拍自拍在线视频观看| 九九九九免费视频| 婷婷色色五月| 天天综合网~91| 欧美在线伊人色| 91福利网在线观看| 99黄页网站| 日产操逼| 亚洲资源网| 五月天婷婷久久| 91天堂| 欧美激情片一区二区| 国产精品免费日韩| AV色女综合| 99久久久久| 日韩综合无码一区久久92| 1204av韩国| 亚洲精品中文字幕一区在线视频| 操熟女91| 人妻天天爽夜夜爽精品2| 懂色天天爱天天日天天射天天澡| 中文字幕十五区| 91GD.COM| 日韩黄色片子| 偷拍片久久| 精品夜夜澡人妻无码| 日韩簧片免费看| 麻豆一区二区三区在线看 | 久操免费观看| 色一射色一射| 手机在线观看不卡无码av| 尤物视频偷拍免费| 青青国产精品在线| 日本性爱网址| 国产三级片在线观看| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 精品综合久久久久久97| 久久激情综合| 欧美日产国产在线成人第一区| 国产乱不卡| 久久久18禁| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 国产精品乱码久久久、久久| 91九色在线| 国产亚洲精品av一区| 亚洲欧美日韩偷拍色图| 精品一区二区三区蜜桃臀www| 国产久久一区二区午夜| 欧美激情性爱视频网站| 国产日本一区二区三区蜜臀在线观看| 屁股久久久久久久久| 精品久久久av| 色婷视频| 乱论91| 欧美日韩另类在线播放| 欧美性爱一区二区| 中文操逼字幕| 中出人妻中文字幕91在线| 日韩免费人妻色情网站| 欧美丝袜中文字幕07在线| 香蕉黄色一级视频| 丝袜无码a片| 亚欧成人综合影院| 亚洲天堂久| 蜜臀亚洲综合一二三四区| 麻豆久久久久久久久丝袜 | 久久久久女教师免费一区| 白 大 人妻 区 在线| 97超碰碰碰| 大香蕉五月天| 熟女突然公开看18禁影片| 亚洲一卡2卡3卡4卡乱码网站| 国产毛片毛片4p懂色| 久久春色| 成人无码欧美一级A片狼牙直播| 精品9999| 蜜桃臀久久| 2026国产精品视频| 一区二区视频你懂的| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 亚洲图片偷拍欧美| 欧洲亚洲人人爽爽视频| 色综合20p| 有码色中文字幕在线观看| 亚洲丝袜天堂| 大香蕉在线视频15| 大鸡吧尹人在线| 精品.99999| 欧美 亚洲 制服 精品| 爱爱动态120秒| 狠狠激情综合狠狠操中文字幕| 丁香五月综合| 被体育老师抱着c到高潮| 又粗又长又爽在线观看| 日韩在线一区高清在线| 91宗合网| 婷婷五月天激情四射| 国产性爱强奸乱伦大全| 91视频在线观看18| 日韩操啪| 18禁中文字幕| 中国国产精品一区视频| 成人福利视频网|