久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

Android ShareSDK 聚合分享集成與回調(diào)排障指南

Android ShareSDK 聚合分享集成與回調(diào)排障指南 上周又有人在群里拋截圖面板彈出來了點(diǎn)微信好友轉(zhuǎn)圈兩秒然后沒下文日志里干干凈凈。這種問題十有八九不是 SDK 壞了是接入鏈路上某個(gè)環(huán)節(jié)對(duì)不上。做過 Android Studio 里集成 ShareSDK 做第三方分享的同學(xué)應(yīng)該都懂聚合分享這活兒看著是引個(gè)依賴、調(diào)個(gè) show實(shí)際上從開放平臺(tái)注冊(cè)、簽名指紋、清單文件、回調(diào) Activity 到混淆規(guī)則至少有五六個(gè)地方要同時(shí)對(duì)齊任何一個(gè)錯(cuò)位表現(xiàn)都是同一個(gè)——分享不出去。這篇東西就是把這些環(huán)節(jié)拆開講清楚。ShareSDK 是一套聚合分享組件把微信、QQ、微博、系統(tǒng)分享這些渠道的登錄、分享、回調(diào)收斂成一套統(tǒng)一 API省掉你逐個(gè)接入原生 SDK 的重復(fù)勞動(dòng)適合需要點(diǎn)多面廣分享能力的中大型 App也適合剛接手老項(xiàng)目、被回調(diào)問題折磨的同學(xué)。下面從選型邏輯一路講到線上收尾能直接抄的部分我盡量寫成可復(fù)制的代碼和配置。1. 先把需求拆干凈為什么選聚合分享 SDK 而不是逐個(gè)接原生1.1 逐個(gè)接原生 SDK 的隱性成本遠(yuǎn)高于第一眼看到的很多人做技術(shù)選型時(shí)算的賬是接三個(gè)平臺(tái)的原生 SDK 大概兩天實(shí)際干下來往往是一周。原因不在核心代碼量而在那些看不到的協(xié)調(diào)成本。每個(gè)渠道都要單獨(dú)去開放平臺(tái)注冊(cè)應(yīng)用、填包名、填簽名、等審核每個(gè)渠道的回調(diào) Activity 放在不同的包里、繼承不同的父類、注冊(cè)不同的 intent-filter每個(gè)渠道的分享參數(shù)結(jié)構(gòu)還各不相同——圖片鏈接在 A 平臺(tái)叫 imageUrl在 B 平臺(tái)叫 imageObject壓縮策略和尺寸上限也不一樣。更要命的是這些代碼會(huì)隨平臺(tái)更新而失效。某個(gè)平臺(tái)某次調(diào)整了縮略圖上限你的分享就靜默失敗某個(gè)平臺(tái)把回調(diào)類的包名規(guī)則收緊你的分享成功但 UI 永遠(yuǎn)停在分享中。三套代碼意味著三次回歸測(cè)試四套就是四次。如果產(chǎn)品需求只是能讓用戶把內(nèi)容發(fā)出去這筆投入的性價(jià)比非常低。我見過一個(gè)內(nèi)容類項(xiàng)目最初老老實(shí)實(shí)接了三個(gè)原生 SDK后來產(chǎn)品要加兩個(gè)新渠道評(píng)估下來改動(dòng)量比重新接一遍還大最后整體換成了聚合方案。所以選型時(shí)真正該問的不是聚合 SDK 是不是更輕而是我要維護(hù)的渠道數(shù)量會(huì)不會(huì)變。只要答案是會(huì)聚合方案的優(yōu)勢(shì)就成立。1.2 聚合方案幫你抹平了什么又沒有幫你抹平什么ShareSDK 的核心價(jià)值是把渠道差異收進(jìn) SDK 內(nèi)部對(duì)外只暴露一層統(tǒng)一接口統(tǒng)一初始化、統(tǒng)一平臺(tái)標(biāo)識(shí)、統(tǒng)一分享參數(shù)結(jié)構(gòu)、統(tǒng)一回調(diào)協(xié)議、統(tǒng)一分享面板 UI。你在業(yè)務(wù)層寫一份代碼切換渠道只是換一個(gè)字符串常量。這對(duì)業(yè)務(wù)層是實(shí)打?qū)嵉臏p負(fù)尤其是分享面板這種交互統(tǒng)一、業(yè)務(wù)邏輯薄的功能。但它不是銀彈有幾件事它替你做不了開放平臺(tái)的應(yīng)用注冊(cè)與審核是你自己的賬號(hào)行為包名與簽名的綁定關(guān)系必須你手動(dòng)填對(duì)SDK 沒法猜目標(biāo) App 未安裝時(shí)的降級(jí)體驗(yàn)需要你在業(yè)務(wù)層設(shè)計(jì)圖片資源合規(guī)尺寸、格式、是否公網(wǎng)可訪問依然是調(diào)用方責(zé)任。把這四件事當(dāng)成SDK 應(yīng)該自動(dòng)處理的基本都會(huì)在調(diào)試階段撞墻。理解這一點(diǎn)很重要因?yàn)樗鼪Q定了你的調(diào)試順序。當(dāng)你遇到分享沒反應(yīng)第一反應(yīng)不應(yīng)該是去翻 SDK 源碼而應(yīng)該按賬號(hào)綁定 → 清單文件 → 回調(diào)注冊(cè) → 參數(shù)合法這條鏈路逐段卡點(diǎn)。后面第 4 章的排查表就是按這個(gè)順序排的。1.3 渠道能力矩陣先想清楚哪些渠道真的需要不同渠道的能力差異很大不是所有渠道都值得接。接之前先拿一張表把需求框住能省掉一半工作量。下表是基于常見實(shí)踐的整理具體以你接入時(shí)服務(wù)方文檔為準(zhǔn)渠道是否需要開放平臺(tái)審核是否要求客戶端安裝回調(diào)機(jī)制常見坑點(diǎn)微信好友是需應(yīng)用審核通過是通過 wxapi 包下的回調(diào)類包名/簽名不匹配直接無(wú)回調(diào)微信朋友圈是是同上僅支持圖文/鏈接純文本受限QQ / Qzone是是SDK 內(nèi)部廣播 回調(diào)類tencentappId 的 scheme 未聲明微博是是回調(diào)類圖片需先上傳鏈接需備案域名系統(tǒng)分享否否無(wú)回調(diào)只能拿到已喚起拿不到結(jié)果這張表最關(guān)鍵的信息其實(shí)是最后一列——只有系統(tǒng)分享是無(wú)回調(diào)的其余渠道理論上都能拿到成功/失敗/取消三態(tài)。如果你的產(chǎn)品經(jīng)理要求分享成功給積分那就必須走前四類系統(tǒng)分享只能算兜底入口。另外還要注意一個(gè)產(chǎn)品側(cè)的取舍微信朋友圈對(duì)純文本分享有限制如果你要分享的是純文字內(nèi)容朋友圈渠道實(shí)際上會(huì)失敗需要在 UI 上把該渠道置灰或者自動(dòng)轉(zhuǎn)成生成圖片再分享。這類細(xì)節(jié)在需求評(píng)審階段就該確認(rèn)別等聯(lián)調(diào)時(shí)才發(fā)現(xiàn)。1.4 版本矩陣SDK、構(gòu)建插件、AGP 三者必須對(duì)齊這里單獨(dú)拎出來講因?yàn)樗切率肿钊菀缀雎?、也最容易?dǎo)致編譯過了但運(yùn)行崩的原因。聚合 SDK 通常以 Gradle 插件形式接入負(fù)責(zé)自動(dòng)注入清單、自動(dòng)生成渠道配置這個(gè)插件對(duì) Android Gradle Plugin 的版本是有要求的。AGP 升級(jí)到較新版本后老插件可能無(wú)法解析變體信息表現(xiàn)為構(gòu)建期報(bào)找不到 task 或者清單合并失敗。我的建議是把三個(gè)版本號(hào)寫進(jìn)項(xiàng)目文檔并鎖死AGP 版本、Gradle Wrapper 版本、分享 SDK 插件版本。升級(jí) AGP 時(shí)把這三個(gè)一起評(píng)估別單獨(dú)動(dòng)一個(gè)。如果確實(shí)要升級(jí)先在獨(dú)立分支上升跑通初始化 → 分享 → 回調(diào)完整鏈路再合回主干。這個(gè)流程聽起來啰嗦但比線上發(fā)現(xiàn)問題強(qiáng)太多。2. 動(dòng)手之前的三件事賬號(hào)、簽名、工程基線2.1 包名與簽名指紋是繞不過去的硬門檻所有渠道的審核第一步都是你是誰(shuí)。開放平臺(tái)通過應(yīng)用包名 簽名指紋來識(shí)別調(diào)用方兩者任一不匹配渠道側(cè)會(huì)直接拒絕而客戶端往往拿不到明確錯(cuò)誤只表現(xiàn)為點(diǎn)了沒反應(yīng)。所以這一步必須先做且要用正式發(fā)布用的簽名文件去算指紋不要用 debug 簽名湊數(shù)。取指紋有兩條路。第一條是命令行直接讀 keystorekeytool -list -v \ -keystore release.jks \ -alias your_alias \ -storepass 你的store密碼 \ -keypass 你的key密碼輸出里會(huì)有一行MD5:和一串冒號(hào)分隔的十六進(jìn)制。第二條是 Gradle 自帶的報(bào)告任務(wù)在 Android Studio 的 Terminal 里執(zhí)行./gradlew signingReport它會(huì)把每個(gè)變體用的簽名信息都打出來包括 MD5 和 SHA1很適合確認(rèn)當(dāng)前構(gòu)建到底簽的哪個(gè)文件。我用這條命令查出過一次事故CI 上配置的 keystore 路徑寫錯(cuò)回退到了默認(rèn) debug 簽名本地調(diào)試一切正常出包就全渠道失效。關(guān)于格式這里有個(gè)特別容易被卡住的細(xì)節(jié)不同渠道對(duì)指紋格式要求不一樣。有的要小寫無(wú)冒號(hào)有的要大寫帶冒號(hào)有的要 SHA1。填之前把平臺(tái)頁(yè)面的輸入框提示看清楚實(shí)在不確定就把大小寫兩種都試一遍。我習(xí)慣在文檔里存一份對(duì)照表包含每個(gè)渠道填的字段、格式、填寫日期換人接手時(shí)不用重新考古。2.2 Gradle 倉(cāng)庫(kù)與插件配置的寫法工程基線部分分三步加倉(cāng)庫(kù)、加插件依賴、加渠道配置。倉(cāng)庫(kù)地址會(huì)隨服務(wù)方調(diào)整而變化我不建議在文章里貼死鏈按你接入時(shí)的官方文檔填即可通常形如// 項(xiàng)目根目錄 build.gradle buildscript { repositories { google() mavenCentral() maven { url SDK服務(wù)方提供的Maven倉(cāng)庫(kù)地址 } // 以官方文檔為準(zhǔn) } dependencies { classpath com.android.tools.build:gradle:8.x.x classpath SDK服務(wù)方提供的構(gòu)建插件坐標(biāo) // 與SDK大版本對(duì)應(yīng) } } allprojects { repositories { google() mavenCentral() maven { url SDK服務(wù)方提供的Maven倉(cāng)庫(kù)地址 } } }然后在 app 模塊里應(yīng)用插件并填寫渠道信息// app/build.gradle apply plugin: com.android.application apply plugin: SDK服務(wù)方提供的插件名 SDK配置塊 { appKey 你的AppKey appSecret 你的AppSecret ShareSDK { devInfo { Wechat { appId wx開頭的AppID appSecret 微信開放平臺(tái)的應(yīng)用密鑰 withShareTicket true bypassApproval false } WechatMoments { appId 同一個(gè)AppID appSecret 同一個(gè)密鑰 bypassApproval false } QQ { appId QQ互聯(lián)的數(shù)字AppID appKey QQ互聯(lián)的AppKey } SinaWeibo { appKey 微博的AppKey appSecret 微博的AppSecret callbackUri https://你的回調(diào)地址 shareByAppClient true } } } }這段配置的本質(zhì)是在編譯期生成渠道清單和初始化參數(shù)所以改完必須重新構(gòu)建光改代碼不重新 sync 是不生效的。我遇到過同事改完配置直接點(diǎn)運(yùn)行結(jié)果用的還是緩存里的舊清單排查了半小時(shí)。養(yǎng)成習(xí)慣改了這段就 Clean 一次。2.3 清單文件幾個(gè)必須手寫的聲明雖然插件會(huì)自動(dòng)注入大部分內(nèi)容但有兩處必須自己寫清楚。第一處是微信回調(diào) Activity它必須放在你的包名.wxapi這個(gè)固定路徑下類名必須是WXEntryActivity少一個(gè)字都收不到回調(diào)package com.example.demo.wxapi; import cn.sharesdk.wechat.utils.WXEntryActivity; public class WXEntryActivity extends WXEntryActivity { // 不需要寫任何代碼父類已經(jīng)處理了回調(diào)分發(fā) }對(duì)應(yīng)清單聲明activity android:name.wxapi.WXEntryActivity android:exportedtrue android:launchModesingleTop android:taskAffinity你的包名 android:themeandroid:style/Theme.Translucent.NoTitleBar /exportedtrue是必須的因?yàn)榛卣{(diào)是從外部應(yīng)用喚起的taskAffinity設(shè)成包名是為了避免多任務(wù)棧里出現(xiàn)重復(fù)頁(yè)面。第二處是Android 11 及以上的包可見性聲明不加的話你連微信是否安裝都判斷不出來渠道會(huì)一直顯示為不可用queries package android:namecom.tencent.mm / package android:namecom.tencent.mobileqq / intent action android:nameandroid.intent.action.VIEW / data android:schemeweixin / /intent /queriesQQ 的回調(diào)還需要在清單里聲明tencent加 AppID 的 scheme這個(gè)通常由插件生成但如果你手動(dòng)裁剪過清單記得檢查一遍。我一般會(huì)在集成完成后做一次清單體檢把合并后的清單導(dǎo)出來搜索wxapi、tencent、queries三個(gè)關(guān)鍵字確認(rèn)都在。2.4 混淆規(guī)則和隱私初始化時(shí)機(jī)混淆這塊的規(guī)則不復(fù)雜但漏了就是線上崩潰且往往在灰度階段才發(fā)現(xiàn)-keep class cn.sharesdk.** { *; } -keep class com.mob.** { *; } -keep class com.sina.** { *; } -keep class **.R$* { *; } -keep class **.wxapi.** { *; } -dontwarn cn.sharesdk.** -dontwarn com.mob.**注意最后那條**.wxapi.**很多人只保留了 SDK 包名忘了自己的回調(diào)類也在反射調(diào)用鏈上混淆后類名變了回調(diào)自然分發(fā)不到。另一個(gè)必須提的是隱私合規(guī)?,F(xiàn)在所有 SDK 都要求在用戶同意隱私政策之后才能初始化提前初始化會(huì)被判定為違規(guī)收集設(shè)備信息。標(biāo)準(zhǔn)做法是在 Application 里先不初始化等用戶在首屏彈窗點(diǎn)同意之后再調(diào)用授權(quán)提交接口并初始化// 用戶點(diǎn)擊同意隱私政策后調(diào)用 MobSDK.submitPolicyGrantResult(true, null);如果你用的是較新的版本這個(gè)方法可能已經(jīng)被整合進(jìn)初始化流程具體以文檔為準(zhǔn)。這個(gè)細(xì)節(jié)不難但它是應(yīng)用上架的硬門檻別放到最后補(bǔ)。3. 初始化、分享調(diào)用與回調(diào)的完整鏈路3.1 初始化時(shí)序什么時(shí)候初始化初始化幾次理想的初始化時(shí)機(jī)是用戶同意隱私政策之后、第一次打開需要分享的頁(yè)面之前。也就是放在同意回調(diào)里或者放在 Application 中但用標(biāo)志位控制。初始化本身是冪等的重復(fù)調(diào)用不會(huì)出問題但為了代碼清晰我習(xí)慣用單例包裝一層public class ShareManager { private static volatile boolean inited false; public static void init(Context context) { if (inited) return; synchronized (ShareManager.class) { if (!inited) { MobSDK.submitPolicyGrantResult(true, null); ShareSDK.initSDK(context.getApplicationContext()); inited true; } } } }這里有個(gè)反直覺的點(diǎn)初始化失敗不會(huì)拋異常。ShareSDK 的初始化是異步的失敗信息通過日志輸出客戶端拿不到返回值。所以第一次接入時(shí)一定要開日志開關(guān)把 SDK 內(nèi)部日志打到 LogcatMobSDK.setDebugMode(true); // 僅調(diào)試包打開我見過的問題里有相當(dāng)一部分是AppKey 填錯(cuò)或者AppSecret 少了一位前端表現(xiàn)完全一樣。打開日志后初始化階段的報(bào)錯(cuò)信息會(huì)非常明確能省掉大量猜測(cè)。3.2 平臺(tái)對(duì)象與分享面板兩種調(diào)用姿勢(shì)SDK 提供兩種分享入口各有適用場(chǎng)景。平臺(tái)對(duì)象直調(diào)適合指定渠道、無(wú) UI的場(chǎng)景比如從詳情頁(yè)的分享到微信按鈕直接觸發(fā)分享面板適合讓用戶自己選渠道它自帶一套底部彈出的網(wǎng)格 UI你可以自定義標(biāo)題、渠道順序、是否顯示更多。平臺(tái)直調(diào)的核心代碼Platform platform ShareSDK.getPlatform(Wechat.NAME); platform.setPlatformActionListener(new PlatformActionListener() { Override public void onComplete(Platform platform, int action, HashMapString, Object res) { // 分享成功 } Override public void onError(Platform platform, int action, int code, Throwable throwable) { // 分享失敗code 是渠道返回的錯(cuò)誤碼 } Override public void onCancel(Platform platform, int action) { // 用戶取消 } }); Platform.ShareParams params new Platform.ShareParams(); params.setShareType(Platform.SHARE_WEBPAGE); params.setTitle(標(biāo)題文案); params.setText(正文描述); params.setImageUrl(https://你的域名/thumb.png); params.setUrl(https://你的域名/detail?id123); platform.share(params);注意setShareType這個(gè)參數(shù)它決定了分享內(nèi)容被如何解釋。SHARE_WEBPAGE是鏈接卡片SHARE_IMAGE是純圖片SHARE_TEXT是純文本。不同類型支持的字段不同比如純文本類型你設(shè)了 imageUrl 也不會(huì)生效鏈接類型如果不給 url 在微信側(cè)會(huì)直接被拒。這一點(diǎn)務(wù)必對(duì)著渠道能力表核對(duì)。分享面板的寫法更簡(jiǎn)單配置一次 UI 就能復(fù)用OnekeyShare oks new OnekeyShare(); oks.setTitle(分享標(biāo)題); oks.setText(分享正文); oks.setTitleUrl(https://你的域名/detail?id123); oks.setUrl(https://你的域名/detail?id123); oks.setImageUrl(https://你的域名/thumb.png); oks.setSite(你的應(yīng)用名); oks.setSiteUrl(https://你的域名); oks.setCallback(new PlatformActionListener() { /* 同上 */ }); oks.show(context);如果只想顯示部分渠道用oks.setPlatform(...)或者在渠道配置里關(guān)掉不需要的項(xiàng)。定制外觀的部分比如只顯示一行、去掉更多通過OnekeyShareTheme實(shí)現(xiàn)一般項(xiàng)目用默認(rèn)風(fēng)格就夠了不必過度定制。3.3 三種典型內(nèi)容的完整參數(shù)與規(guī)格純文本分享最省事但要注意微信好友對(duì)純文本的支持僅限于會(huì)話朋友圈不支持純文本。文本里帶鏈接時(shí)部分渠道會(huì)自動(dòng)抓取網(wǎng)頁(yè)標(biāo)題和縮略圖抓不到就顯示純文本視覺上很樸素。圖文鏈接分享是內(nèi)容類 App 的主力場(chǎng)景參數(shù)上有幾個(gè)硬性要求鏈接必須是公網(wǎng)可訪問的 HTTPS 地址不能是內(nèi)網(wǎng)或本地文件路徑縮略圖必須是公網(wǎng)可訪問的圖片地址不能傳本地路徑。我踩過的坑是測(cè)試環(huán)境用的是內(nèi)網(wǎng)域名本地調(diào)試一切正常線上切了域名反而忘記同步改配置導(dǎo)致縮略圖 404卡片變成灰塊。本地圖片分享適合生成海報(bào)再分享的場(chǎng)景。用setImagePath傳本地絕對(duì)路徑但要注意圖片大小多數(shù)渠道對(duì)分享圖片有上限常見是幾 MB 級(jí)別超過會(huì)被壓縮甚至直接失敗。穩(wěn)妥做法是分享前先自己壓縮一遍private String compressForShare(Bitmap src) { File out new File(context.getCacheDir(), share_ System.currentTimeMillis() .jpg); int maxSide 1080; float scale Math.min(1f, maxSide * 1f / Math.max(src.getWidth(), src.getHeight())); Bitmap scaled Bitmap.createScaledBitmap(src, (int) (src.getWidth() * scale), (int) (src.getHeight() * scale), true); try (FileOutputStream fos new FileOutputStream(out)) { scaled.compress(Bitmap.CompressFormat.JPEG, 85, fos); } catch (IOException e) { return null; } finally { if (scaled ! src) scaled.recycle(); } return out.getAbsolutePath(); }縮略圖規(guī)格是另一個(gè)高頻坑點(diǎn)。微信側(cè)的縮略圖有比較嚴(yán)格的大小限制經(jīng)驗(yàn)值在 32KB 以內(nèi)比較穩(wěn)超過這個(gè)體積可能導(dǎo)致分享卡片顯示異?;蛘咧苯邮?。我的做法是縮略圖單獨(dú)出一張 200x200 左右的小圖別直接復(fù)用列表頁(yè)的大圖。3.4 回調(diào)里該做什么、不該做什么回調(diào)是分享鏈路里業(yè)務(wù)價(jià)值最高的部分但也是最容易被寫壞的部分。onComplete里可以做的是記錄埋點(diǎn)、發(fā)放獎(jiǎng)勵(lì)、刷新狀態(tài)。不該做的是彈 Toast 說分享成功——因?yàn)閛nComplete只代表 SDK 層面認(rèn)為分享流程走完了并不等于用戶真的發(fā)到了好友或者朋友圈。部分渠道存在用戶點(diǎn)了發(fā)送但最終取消的情況SDK 無(wú)法感知。所以涉及利益的設(shè)計(jì)比如分享得積分我通常做兩層SDK 回調(diào)作為觸發(fā)服務(wù)端做校驗(yàn)。校驗(yàn)方式是記錄分享發(fā)起時(shí)間、渠道、用戶 ID配合頻次限制和風(fēng)控規(guī)則而不是純信任客戶端回調(diào)。這套設(shè)計(jì)做下來惡意刷分的成本會(huì)高很多。onError里的 code 值值得關(guān)注把它落到日志里出問題時(shí)能快速定位是渠道拒絕還是網(wǎng)絡(luò)問題。onCancel建議只做日志不要彈任何提示用戶主動(dòng)取消還彈個(gè)分享取消是很煩人的交互。3.5 分享成功與否的判斷邊界這里得說句實(shí)話沒有哪個(gè)聚合方案能 100% 確認(rèn)用戶真的完成了分享。渠道返回的成功只代表內(nèi)容已成功交給目標(biāo)應(yīng)用用戶可能發(fā)出去也可能在最后一屏取消。能拿到的最強(qiáng)信號(hào)是微信分享后返回的 transaction 標(biāo)識(shí)但即便如此也存在邊界情況。實(shí)踐中的做法是不追求絕對(duì)準(zhǔn)確但要控制損失。具體是本地回調(diào)立即給一個(gè)輕量的 UI 反饋比如按鈕變成已分享服務(wù)端按日限制獎(jiǎng)勵(lì)次數(shù)同時(shí)對(duì)異常高頻賬號(hào)做冷卻。這個(gè)組合能把薅羊毛的收益壓到接近零又不會(huì)誤傷正常用戶。4. 踩坑排查實(shí)錄五類高頻故障的定位路徑4.1 面板彈出來了但渠道是灰的或者點(diǎn)了沒反應(yīng)這是最高頻的問題原因基本集中在三個(gè)地方。第一是包可見性沒聲明Android 11 之后應(yīng)用默認(rèn)看不到其他應(yīng)用SDK 判斷微信未安裝渠道就被置灰。第二是簽名指紋不匹配渠道側(cè)拒絕但不給明確錯(cuò)誤。第三是AppKey 與包名不對(duì)應(yīng)比如測(cè)試包和正式包用了同一份配置但只有正式包在開放平臺(tái)注冊(cè)過。排查順序建議先看 Logcat 里 SDK 的初始化日志確認(rèn)渠道配置是否加載成功再用adb shell pm list packages | grep tencent確認(rèn)設(shè)備上裝了目標(biāo)應(yīng)用然后打印當(dāng)前簽名的 MD5和開放平臺(tái)后臺(tái)逐個(gè)字符對(duì)比最后確認(rèn) AppKey 屬于哪個(gè)包名。4.2 分享出去了但回調(diào)永遠(yuǎn)不回來回調(diào)鏈路涉及你的應(yīng)用 → 目標(biāo)應(yīng)用 → 你的回調(diào) Activity任何一環(huán)斷了都會(huì)表現(xiàn)為分享成功但沒回調(diào)。最常見的原因是WXEntryActivity 的包路徑或類名寫錯(cuò)必須是包名.wxapi.WXEntryActivity且必須繼承 SDK 提供的父類。其次是exported屬性沒開系統(tǒng)不允許外部喚起。第三是清單合并時(shí)被覆蓋比如主模塊和某個(gè)庫(kù)都聲明了同名 Activity。我建議在集成完成后立刻做一次回調(diào)自測(cè)隨便分享一條文本看 Logcat 里有沒有進(jìn)入回調(diào)類。如果沒有任何日志基本可以確定是清單或類路徑問題而不是代碼邏輯問題。4.3 Debug 正常Release 包分享必失敗這類只在線上出現(xiàn)的問題八成是混淆或者簽名差異?;煜矫娉饲懊嫣岬降?keep 規(guī)則還要注意某些渠道 SDK 用了反射調(diào)用自己的內(nèi)部類規(guī)則里統(tǒng)一用通配符保留整個(gè)包最穩(wěn)。簽名方面很多團(tuán)隊(duì)本地調(diào)試用 debug 簽名CI 出包用 release 簽名但開放平臺(tái)上只注冊(cè)了其中一個(gè)。這時(shí)候的表現(xiàn)是本地測(cè)試全綠打包給別人裝就廢。我的做法是在構(gòu)建腳本里加一道檢查打包時(shí)打印當(dāng)前簽名指紋和文檔里記錄的正式簽名做人工核對(duì)。這個(gè)動(dòng)作花不了一分鐘能擋住很多低級(jí)問題。4.4 圖片分享失敗、內(nèi)存溢出與白屏圖片相關(guān)的問題集中在體積和格式。體積上超過渠道限制會(huì)被拒格式上部分渠道不接受 WebP建議統(tǒng)一轉(zhuǎn) JPEG。內(nèi)存上從相冊(cè)取原圖直接分享在低端機(jī)上很容易 OOM尤其是 4000 萬(wàn)像素的照片。處理思路是進(jìn)內(nèi)存之前先降采樣。用BitmapFactory.Options的inJustDecodeBounds先讀尺寸算出采樣率再真正解碼這一步能把內(nèi)存占用降到原來的幾分之一。分享用的圖片不需要原圖質(zhì)量1080 長(zhǎng)邊、85 壓縮率在手機(jī)上看起來完全夠用。還有一類白屏問題容易被誤判成崩潰分享鏈接卡片時(shí)如果頁(yè)面需要登錄才能訪問渠道抓取時(shí)會(huì)拿到登錄頁(yè)卡片顯示空白或者錯(cuò)誤標(biāo)題。解決辦法是給分享鏈接加一個(gè)免登錄的預(yù)覽路徑或者在頁(yè)面里補(bǔ) Open Graph 標(biāo)簽title、description、image讓抓取器能拿到正確信息。4.5 常見問題速查表現(xiàn)象最可能的原因快速驗(yàn)證方式渠道置灰不可點(diǎn)未聲明包可見性 / 目標(biāo)應(yīng)用未安裝檢查 queries 聲明adb 查包名點(diǎn)擊后無(wú)任何反應(yīng)AppKey 與包名不匹配打開 SDK 調(diào)試日志看初始化結(jié)果分享成功但無(wú)回調(diào)wxapi 路徑或 exported 屬性錯(cuò)誤檢查合并后的清單文件僅 Release 包失敗混淆規(guī)則缺失 / 簽名不一致對(duì)比 debug 與 release 的簽名指紋縮略圖不顯示圖片地址非公網(wǎng) / 體積超限瀏覽器直接訪問該 URL看文件大小鏈接卡片標(biāo)題為空頁(yè)面缺少抓取標(biāo)簽 / 需登錄用鏈接抓取工具預(yù)覽這張表我一般直接貼在項(xiàng)目 wiki 上新人遇到問題先自查一遍能過濾掉大部分常見情況。5. 上線前的收尾包體、降級(jí)與數(shù)據(jù)回收5.1 按需引入渠道別把整套都打進(jìn)去聚合 SDK 的一個(gè)副作用是包體會(huì)變大因?yàn)樗讯鄠€(gè)渠道的客戶端代碼都塞進(jìn)來了。如果你的產(chǎn)品只需要微信和 QQ就在配置里把微博相關(guān)的項(xiàng)去掉插件會(huì)相應(yīng)地不注入對(duì)應(yīng)模塊。這一步通常能省下幾百 KB 到 1MB 不等對(duì)包體敏感的項(xiàng)目值得做。除了渠道裁剪還可以關(guān)注資源配置的合并。分享面板的圖標(biāo)、多語(yǔ)言字符串都是資源如果項(xiàng)目本身做了資源壓縮記得檢查分享相關(guān)資源有沒有被誤刪。我遇到過一次面板圖標(biāo)全變成方塊最后發(fā)現(xiàn)是資源壓縮規(guī)則里把share*前綴的資源全排除了。5.2 失敗降級(jí)讓用戶永遠(yuǎn)有出口分享失敗最差的體驗(yàn)是什么都沒發(fā)生。我習(xí)慣在失敗回調(diào)里做兩級(jí)降級(jí)第一級(jí)如果是目標(biāo)應(yīng)用未安裝彈一個(gè)提示引導(dǎo)用戶同時(shí)把該渠道在面板里隱藏一段時(shí)間第二級(jí)如果連續(xù)失敗自動(dòng)切到系統(tǒng)分享作為兜底。系統(tǒng)分享雖然拿不到回調(diào)但至少用戶能把內(nèi)容發(fā)出去體驗(yàn)上是部分成功而不是完全失敗。這個(gè)兜底邏輯用 Android 原生的Intent.ACTION_SEND實(shí)現(xiàn)即可不需要額外依賴Intent intent new Intent(Intent.ACTION_SEND); intent.setType(text/plain); intent.putExtra(Intent.EXTRA_TEXT, 正文內(nèi)容 https://你的域名/detail?id123); context.startActivity(Intent.createChooser(intent, 分享到));記得判空resolveActivity否則在沒有可分享應(yīng)用的設(shè)備上會(huì)拋異常。5.3 埋點(diǎn)把分享這件事量化出來分享功能的業(yè)務(wù)價(jià)值需要通過數(shù)據(jù)說話。我一般埋三個(gè)點(diǎn)面板曝光用戶看到了哪些渠道、渠道點(diǎn)擊用戶選了哪個(gè)、結(jié)果回調(diào)成功/失敗/取消帶錯(cuò)誤碼。這三個(gè)點(diǎn)串起來能算出每個(gè)渠道的點(diǎn)擊率、成功率、失敗原因分布。有了這組數(shù)據(jù)很多決策就有依據(jù)了。比如某個(gè)渠道成功率長(zhǎng)期低于 80%先去查是不是版本兼容問題某個(gè)渠道點(diǎn)擊率高但成功率低可能是參數(shù)配置有問題。沒有數(shù)據(jù)的團(tuán)隊(duì)只能靠用戶投訴來發(fā)現(xiàn)問題滯后性好幾天。埋點(diǎn)實(shí)現(xiàn)上有個(gè)細(xì)節(jié)回調(diào)可能在非主線程寫數(shù)據(jù)庫(kù)或者上報(bào)要注意線程切換。另外分享面板的曝光時(shí)機(jī)建議放在show()之后延時(shí)一小段避免把面板初始化失敗也算成曝光。5.4 版本升級(jí)的回歸清單SDK 升級(jí)不是換個(gè)版本號(hào)就完事。我整理了一份自己的回歸清單每次升級(jí)按這個(gè)走一遍初始化是否正??慈罩?、面板是否能彈出、每個(gè)渠道是否都能走通、回調(diào)是否正常觸發(fā)、Release 包混淆后是否正常、低版本 Android尤其是 7.0 和 11是否正常、未安裝目標(biāo)應(yīng)用時(shí)提示是否正確。這七項(xiàng)跑完大概二十分鐘但能避免上線后回滾。我吃過一次虧升級(jí)后功能全對(duì)但忘了驗(yàn)證 Android 11 的包可見性結(jié)果新系統(tǒng)用戶全部無(wú)法分享緊急發(fā)版修了兩天才穩(wěn)住。最后分享一個(gè)我自己的習(xí)慣。每次集成或升級(jí)完分享功能我會(huì)在真機(jī)上用三無(wú)環(huán)境測(cè)一遍——沒有緩存、沒有登錄、剛裝的包。這個(gè)環(huán)境最接近新用戶很多因?yàn)楸镜貭顟B(tài)殘留而被掩蓋的問題會(huì)立刻暴露出來。踩過幾次坑之后這個(gè)動(dòng)作已經(jīng)變成我的肌肉記憶了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产成人精品必看| 一级@啪啪视频| 超碰97护士| 中国探花熟女| 久久久久国产| 中文字幕一区二区日韩网| 青青青草原| 国产成人拍国产亚洲精品| 热九九精品| 91N综合在线| 欧美中字二区| 无套内射人妻在线播放| 欧美熟妇操操视频| 成人自拍三级在线观看| 超碰99热中文字幕| 成人小说视频在线精品欧美| 干B| 大香蕉中文在线| 东京热一区二区中文字幕| 熟女乱伦A| 综合网亚| 国产高清在线自在拍69| 亚洲少妇中文字幕网址| 日本天堂网| 国产捆绑一区| 97se综合网| JIZZJIZZ亚洲女人被躁| 久操B网| 欧美色97| 蜜臀久久在线视频| 亚洲 欧美 制服 另类 自拍| 青青草精品| 中文字幕日韩电影人妻| 青青草乱入乱欲视频在线观看| 国产欧美在线观看免费观看| 91九九九逼| 亚洲日韩视频二区| 91jk色拍| 亚洲好看强奸乱伦| 亚洲蜜臀视频精品久久| 男人兔费天堂| 在线观看成人性爱免费小视频| 热久久99999| 日韩人妻有码免费视频| 亚洲另类久操网| 一级AV性爱| 黑人粗大V S日韩女优视频| 女人 A一级| 99少妇| 天堂岛av| 日韩av免费一级电影| 97自拍一区| 久久一级无码精品毛片6| 国产视频三区四区| 亚洲国产av中文字幕久久 | 伊人久久大香线综合无码| 日韩有码 一区二区三区| 日韩欧美偷拍美女视频| AA特级绝黄| 久久粉色| 99热国产| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 丰满人妻一区二区三区在线| 国产三级多多影院2022国产AA一级毛片无码 | 欧洲黄色网| 白丝在线一区| 后入美女国产| 亚洲 欧美 手机在线观看| 67914在线兔费成人视频| 精品夜夜澡人妻无码| 国产精品无套内谢| 亚洲一区在线观看欧洲| 欧美精品,四区。五区| 欧美一级三级| 欧美日本国产日韩激情视频| 又黄又硬又粗又长国产视频| 欧洲精品久久| 欧美熟妇视频| 天美传媒国产原创中文字幕亚洲欧美另类 | 人人妻人人操人人乐| 男女啪啪网站免费视频| 久久久涩| 中文字幕熟女人妻丝袜丝| 一区久久久二区| 久久久久久久九九九九九九| 精品人妻1区| 91性网| 嗯嗯啊啊的视频| 中文字幕在线观看二区三区| h无码动漫在线观看| 日本成a人v网站在线观看| 亚洲美女高潮喷水视频| 亚洲有薄码区久久在线一区| 亚洲少妇激情视频| 99综合自拍| 色噜噜综合在线| 亚欧国产无码精品在线| 97国产人人| 激情综合 婷婷五月 红杏| 99蜜桃臀亚洲成人在线观看| 色大师网站www永久网站视频| 免费视频无码| 爱av免费| 91人妻Pr| 国产 三级自拍| 亚欧高清在线| 欧美性爱1080p| 亚洲国产av中文字幕久久| 啪啪啪综合| 日韩精品一区,二区 九九...老司机| 色女女女导航| 五月天婷婷激情| 啪一啪免费视频| 国产精品免费1区2区视频| 91精片| 国产精品粉嫩福利在线| 97中文字幕一区| 国产丸一视频| 亚洲综人| 清纯唯美第一页| 全国男人天堂网| 亚洲中文字幕av | 人人色人人操在线| 亚洲国产高清福利视频| 亚洲二区精品在线观看| 国产精品视频白浆免费| 色99在线| 99re不伦| 久久久成人精品| 成 人 A V免费视频在线观看| 亚洲天堂中文字| 亚洲中文字幕熟女| 欧美日韩啪啪电影| www.久久最新地址| 国产精品免费美女视频| 欧美日韩性爱精品| 免费看毛片操穴| 午夜高清成人在线视频| 激情小说五月天| 中文无码一二三区| 亚洲综合夜色| 欧美综合亚洲| 国产精品亚洲色婷婷久久久| 久久6热视频免费观看| 黄色网址在线免费观看| 2020视频1区2区3区| 爱射综合| 偷拍五区| 岛国1区2区3区在线观看| 欧美一级黄片视频在线| 婷婷色色网| 蜜桃精品一区二区三区ww| 国厂麻豆77q4| 精品二999| 综合色久| 91精品国产91久久福利| 加勒比性爱成人在线| 午夜福利合集| 精品久久无码午夜福利| 日韩有码免费视频| 国产精品久久久久999| 久久久久久久9999| 欧美色综合网| 嫩呦国产一区二区三区AV| 强免费黄色网址| 秋霞鲁丝午夜无码一区二区三| 国内精品久久久久影院亚洲| 日日夜夜国产综合| 久久超碰网| 国产啊v在线免费播放| 探花精品视频| 97精品国产精品免费观看| 伊人网高清| 三级激情网站| 欧美性天天影视| 91激情国产| 国产日韩美女小穴视频网站不卡| 91久久免费视频互動交流| 黄网色一区二区三区四区精品| 欧美视频在线第3页| 国产成人亚洲精品自产在线| 色婷婷蜜臀av| 色香av| 北野未奈加勒比av| 日韩免费中文字幕视频| 青青操青娱乐| 色香天天| 久久伊人大香蕉| 东北老女人的激情视频| 日日夜夜精品视频| 亚洲色图激情小说| 日韩本不卡视频在线观看| 成人AV超碰免费在线| 蜜桃视频成a人v在线| 大香蕉手机在线视频| 老鸭窝成人| 亚洲高清91| 91天堂色男人的天堂| 97综合日韩| 久久色精品视频在线| 久久精品店| 好屌色综合| 黄色片A级一区二区三区| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 强免费黄色网址| 2026国产精品视频| 超97在线精品视频| 久久天天躁日日躁狠狠躁| 欧美激情区| 日日干日日| 国产尤物在线三区| 99爱在线视频| 美女天天干| 性色乱AV一区二区| 国产精品片| 吻戏激情性巴克| 78精品| 日韩极品无码B| 五月婷婷丁香| 精品人妻一区二区三区在线视频不卡| 久久超碰爱| 久久av无码| 久久久久久久久久久999| ,成人免费啪啪视频| 精品96久久| 啪啪资源网| 青青草玖玖爱| AV不卡在线| 九99久久| 啊啊啊啊嗯嗯嗯用力好爽 | 色婷婷五月天| 9Ⅰ超碰| 亚洲精品男人的天堂| wuyechaopeng| 国产亲戚伦亲在线| 少妇无码999| 女同亚洲欧美一二三区久久电影| 国产无吗在线播放| 欧美激色| 性爱动态120秒| 色欲久久久久综合网| 精产国品一区二三产品| 亚乱色| 内射老妇BBWX0C0CK| 成人影 天天操 亚洲| 国产免费久久久久| 91综合熟女| 久极品在线观看| 国产精品美女视频诱惑| 9999亚洲精品| 九九九九88| 亚洲欧洲综合成人av一区| 精久久久| 亚州成人a∨| 天天做日日做| 麻豆91熟妇人妻中文字幕茄子 | AV天堂丝袜| 欧美日韩*字幕一区| 青青草中出视频| 青青草原人妻| 69精品久久久久中文字幕| 91M一社| 日本熟妇一区二区三区| 国产精品女生av| 大逼色网站| 麻豆AV96熟妇人妻| 午夜天堂精品久久久久91| 人人艹亚洲| 91久久婷婷| 久久中日麻豆| 亚洲一区二区三区麻豆传媒| 凹凸视频特色日本特黄| 久久黄片国产一区二区| 酒色综合网| 欧美日韩人妻婷婷一区| 五月丁香婷婷色| 逼操网站| 内射黑丝袜| 91夜夜蜜桃臀1区2区3区| 日韩成人大片一区二区| 日韩av性爱在线播放| 啊啊在线| 日韩精品国模| 日韩图区| 国产精品熟女九九九| 五月天激情小说| 强奸乱伦动态污图免费 | 四虎精品永久在线播放| 欧美日韩亚洲少妇寂寞影院正在播放| 欧美一级专区免费大片| 啊啊啊97视频| 操我啊啊啊啊啊| 国产又粗又又黄又猛| AV免费在线播放一区| 久久天天艹| 蜜臀一区二区三区在线 | 国产视频一区二区在线观看| 国产亚洲精品美女久久久m| 日韩熟女精一区二区三区不卡| 夜夜夜夜爽| 亚洲男人天堂2013| 久超超碰| 国产九九九九九九九九| 在线一道啪| 黄色片,com| 黄色人人| 男人天堂电影院| 午夜福利 成人 91| 精品玖九九久| 久久系列| 久久在线观看免费视频| 国产精品人妻无码久久久老鸭窝| 伊香蕉综合久久久久久久噜噜噜| 9 1果冻精品视频| 婷婷10月天青娱乐| 天天干人人乐| 女人天堂av在线播放| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 岛国艾薇凹凸视频天堂| 日韩丝袜二区| 天天色综合天天操| 色小视频蜜乳| 肉嘟嘟www视频在线观看高清| 巨爆乳一区二区爆乳区| 美國A片| 白嫩国模丰满一二三区| 久综合国内精品自在自线| 另类TS人妖一区二区三区| 国产乱伦亚洲色图高清无码| 久久久久久亚洲中文| 中国大陆国产高清AⅤ毛片| 国产精品无码av| 7777欧美成是人在线观看| 国产尹人在线视频免费| 激情五月天色播| 麻豆久久视频在线地址| 99re99视频在线免费观看| 国产精品久久久久久久久久久久久久久久| 综合情欲网| 四虎在线免费视频| 香蕉99秘 一区精品蜜桃臀| 热99re69精品8在线播放| 欧美福利视频啊啊啊啊| 91伊人| 极品综合| 五月丁香激情综合网| 嗯嗯嗯啊啊啊操的我好爽| 亚州熟妇精品| 国产丝袜啪啪| 国产久久成人| www.四虎在线| 人妻丰满熟妇av无码区蜜桃| 欧美久久人体| 9丨亚洲一区二区在线| 黑人操一区二区| 偷拍伦理视频| 国产精品在线一区二区| 一区二区播放| 人妻少妇被猛烈进入中| 天天日少妇逼AV| 亚洲的天堂网| 超碰人人操97碰| 97干在线视频| 日本中文字幕一区| 神马久久久久久久| www.伪伪| 色女综合| 超碰色综合| 国产精品岛国片在线观看| 日本亚洲vr欧美不卡高清专区| 国产诱惑| 久久久999| 人人贴人人摸| 日本精品国产视频| 国产精选视频| 欧美日韩国内不卡| 日韩欧美偷拍美女视频| 中文字幕人妻资源在线| 一区二区三区四区免费视频| 日夜干射色啊| 午夜舔阴达高潮视频免费看| 97人人干| 日韩久草| 福利操逼| 麻豆精品A片免费观看| 啊啊啊啊,啊啊好多水| 人人看人人爰人人操| 天天肏美女| 99色骚| 十八禁视频一区二区| 大香蕉亚洲中文| 久久亚洲日韩国产欧| 国产人妖视频一区在线观看| 青青草色情网站视频| 亚洲97综| 激情AV| 四虎884| 一区二区三区 日韩欧美| 亚洲男人的天堂AV| 女人综合网| 中文字幕中文字幕一区二区| 91久久久视| 搡老女人老91妇女老熟女| caorenqi shipin| 日逼97| 五月丁香六月激情综合| 亚洲人综合19| 日韩中文字幕二区| 性交一区二区在线播放| 一级性爱aaaa| 91亚洲人| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 九t超碰| 人妻少妇色综合| 久草免费在线视频| 国产伦精品一区二区三区在线观| 久久久久久久91| 日韩无码成人电影| 99999亚洲| 99在线免费观看| 色五月AV| 亚洲揄拍网| 中日韩久久久| 无码天堂| 97av,com| 香蕉综合网| 精品人妻一区二区免费蜜桃视频| av在线人气| 另类小说综合网| 熟女露脸激情自拍视频| 亚洲午夜AV| 国产强奸乱伦欧美| 少妇色综合| 久久亚洲婷婷| 综合av社区| 国产AB视频| 欧苏综合色综合| 摸奶性爱视频网站在线免费播放| 国产吹潮女在线观看| 日韩AV片| 影音先锋视频在线| 美女9118禁| 97 超碰 人人做 人人爱| 亚洲古典另类欧美在线| 久久久蜜桃臀无码视频| 不卡一区视频| 日韩无码嘿咻黑热久| 人人操人人插人人摸人人干| 久久9精品| 操b网站亚洲无码| 国产 三级自拍| 一个国产在线综合网站| 亚洲图片小说欧洲| 国产熟女精品区| 天天做天天爽| 蜜桃视频成a人v在线| 久久久久久97| 一区二区无码视频| 有码免费观看| 六九九九| 日本色色的视频| 欧美日韩国产一区二区小黄片大全| 国产AV天美| 五月丁香啪| 做爱A级亚欧| 亚洲男人天堂网| 男女啊啊啊啊啊| 97碰碰日本乱偷人妻中文的| 无码人妻一区二区一牛影视| 日韩人妻一区二区精品| 欧美黄色大片在线观看| 中文字幕人妻资源在线| 天堂男人网| 精久久久| 台湾佬中文娱乐网久久久久久久久久com| 美女啊啊啊啊pc| 亚洲精品亚洲人成人网| 一区二区三区黄片免费观看| 富女玩鸭子一级毛片| 男女啊啊啊| 997色在线| 国产1727欧美| 97精品一二区| 97视频网站在线观看| 超碰99在线| 亚洲综合成人网| 国产精品久久成人免费| 福利伊人玖玖国产| 午夜影美女日鸡鸡天天视频国产| 极品综合| 性在久久久久久| 欧美丰满少妇xx高潮| 欧美不卡在线一区二区| 久操精品| 偷拍 欧美 日韩| 99无码狠狠久久| 精品福利| 91网九色蝌蚪操熟女| 国产精品麻豆免费视频| 香蕉热人人精品| 国模私拍一区二区三区神乳| 欧美的性爱网站免费| 亚洲精品人妻在线| 男人a天堂手机在线版| 亚洲一欧洲中文字幕在线 | 78久久| 99re99| 午夜性生活av免费在线看| 国产精品久久| 乱伦日本中文自拍| 亚洲自拍天堂| 日本色色色视频| 无码 有码 国产18p| 五月丁香六月| 久7色| 亚洲成人一二三区| 伊人991| 日韩欧美蜜桃精品久久中文字幕久久| 本道在线| 婷婷爽人人婷婷爽视频| 国产精品一二三区18| 亚洲欧美综合区自拍另类| 亚洲国产午夜真人一级片中文字幕精品黄网站| 国产a级午夜毛片| 人人看人人摸人人色| 天天综合日韩网| 91久久午夜无码鲁丝片久久人妻| 中文字幕女同在线| 欧美在线|亚洲| 免费试看60秒| yellow网站免费观看日韩高清无码| 精品久久久久久中文| 亚洲黄色影视| 亚洲 欧美 另类 日韩 人妻一区 | 亚洲午夜福利在线影院| 久久亚洲婷婷| 伊人一区二区三区| 九九九国产| 国产中文字幕在线点播| 亚洲成人综合在线| 啊啊啊啊啊啊好湿好爽视频| 97 国产精品| 1769成人国产精品视频| 亚洲欧洲国产综合av| 亚洲国产综合久久天堂| 嗯~啊~快点 死我视频免费看网站| 男人的天堂一区| 免费观看性欧美一级| 动漫爆乳3D奶水一区在线观看| 18一区二区三区| 玖玖爱伊人玖玖爱| 亚洲国产精品有声| 岛国小电影| 蜜臀va69| 三级网色| 吉川爱美98堂在线| 久久内射| 高清国产av无码| 亚洲高清在线| 久男人久久| 国产v片在线免费观看| 性做久久久久久免费观看软件| 人妻99p| 人妻精品一区二区全免费| 欧美日韩狠狠爱| 国产综合网站在线播放 | 久久久96| 色婷婷99| 亚洲色棕合| 日本欧美韩国国产在线| 性色一线| 狠狠爱大香蕉| 成人日韩欧美| 亚州,欧美在线| 另类 日韩 熟女| 日日嗨AV一区二区夜夜| 操逼视频色| 青青草丝袜在线视频| 日韩美女久久一区二区三区| 亚洲资源一区| 久久久五月天| 91高清欧美| 成人性交午夜免费片| 欧美日韩天堂| 国产多人在线观看视频| 曰韩av中文字幕专区| 欧美大香蕉97| 可以免费看黄片的视频| 97国产精品国| 日本操逼视频免费| 日韩一区二区熟女| 国产精品视频内谢女人| 天天综合AV| 花花AV导航| 超碰久久中文| 亚洲天堂久久久久久粉红视频| 99热最新网址| 亚洲天堂男| 蜜臀久久99精品久久久老,,| 欧美性暴力猛交| 大鸡吧尹人在线| 国产熟女自拍| 亚洲日本韩国在线| 国产91美女视频| 99热这里只有精| 91无码人妻精品一区二区三区蜜桃 | 五月天成人综合| 久久啊啊| 情色av电影| se吧提供国产乱老熟视频胖女人| 91亚·色| 国产一级特黄大片处女| 色偷综合| 日本岛国黄色网址| 久久超碰97| 色老汉色| 日本操逼视频导航| 国产麻豆91欧美一区二区久久婷婷国产精品 | 九九久久国产精品| 国产传媒操逼视频| 好色美女九七第一页| 欧美十八禁网站| 一本色道综合久久欧美日韩精品| 97精品国产97久久久久久户外免费| 欧美色人| 日本好吊色视频| 色情综合| 日韩性爱一级片| 亚洲AV在线资源| 久久久精品中文字幕麻豆| 玖日综合网| 美国三级日本三级久久99| 色色色色网站| 明星性猛交ⅹxxx乱大交| 欧美午夜视频| 大香蕉97久久| 亚洲成人免费中文字幕| 亚洲a色| 密桃99999| 亚洲AV秘无码一区..| 久久精品六区| 嗯嗯啊啊用力视频免费| 乱伦av麻豆| 青娱乐蜜桃臀AV色婷| 国产精品爱欲| 九九九九九精品视频| 日本东京热大香蕉a片| 色9999日韩国产| 99这里只有精品国产| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 首页亚洲国产高跟丝袜诱惑视频| 日本免费中文字幕在线| 日夜伊人网| 日本一级不卡一二区| 亚洲城人男人的天堂| 男男H黄动漫啪啪无遮挡网站| 日韩电影在线观看网址| 日韩无码第3页| 蜜臀久久久国产| 亚洲 欧美都市激情| 亚洲色图欧美一区二区不卡| 97超碰色色| 午夜天天碰综合视频| 九九九九免费高| 青草视频在线看看看看看看看看看| 国产9l 大屁股| 伊人991| 午夜精品久久久久久久99热影院| 91碰超| 淮穴色AV| www久久国产精品| 97网色| 亚洲人妻久久久| 色亚州人久干视频在线观看免费版| 欧美成人精品一区二区三区| 亚洲最大91网| 亚洲操操| 91九九| 91久操| 亚洲操人| 国产精品无码AV网站| 香蕉热人人精品| 国产精品成久久久久午夜午夜| 国产91丝袜 在线播放| 久久噜噜噜精品国产亚洲综合| 神马久久啊啊| 超碰久久性爱| 国产夜夜艹| 亚洲美乱| 国产欧美美女免费观看视频| 视频二区美腿丝袜制服人妻欧美| 无码又爽又硬又激情免费视频| 狠狠色噜噜狠狠狠狠狠色综合久久 | 中文字幕,人妻,日韩| 性爱视频免费网址| 久久伊人亚洲AV无码网站| 国产精品毛片?v一区二区三区 | 美女十八禁| 91黄射| 日韩丨制服丨中文|在线| 97热视频在线观看| 超碰9 7女人| 9999久久久久| 91视频综合在线| 青青草原伊人网| 久久久久ab| 大香蕉伊人在线成人AV在线观看 | 九九99精品| 四虎免费视频| 日本布卡一区二三区| 成人a大片在线观看| 色五月AV在线| 日韩AV噜噜噜一区二区三区四区| 欧美日韩97在线| 999热日韩精品| 东京热毛片177b2viP| 欧美成人一级麻豆| 久久久久久久97| 69av一区二区三区| 97人妻免费中文字幕| 午夜精品视频777| 综合网欧美在线| 亚洲 欧美 天天| 99re这里只有精品3| 区二区亚洲婷| 97国产精品在线观看| 亚洲91网| 久久国产乱子伦精品免费女人| 欧美性爱一级操| 狂操嫩妻视频一区二区三区| 玖玖综合色| 欧美色图色综合| 精品国产一级久久| 天天草夜夜草高潮片| 噜噜噜亚洲精| 成人夜夜爽| 18禁美女裸体无遮挡啪啪| 国产资源中文字幕在线| caoni国产亚洲av| 青青草日韩无码| 亚洲 综合 第一页| 黄页av| 黑人美精品 A片| 天天爽天天| 熟妇高潮精品一区二区三区下载| 亚洲诱惑天堂 | 精品人妻一区二区三区蜜桃视频| 久久精品| av片在线观看免费播放| 啊啊啊啊啊啊好湿好爽视频| 亚洲色图日韩丝袜制服一区二区五月在线 | 狠日操| 成人五月香网在线| 国产熟妇一区二区| 草B在线| 亚洲牲交| av片在线观看免费播放| 色婷婷婷五月天激情四射| 一区二区三区在线日韩影院观看| 色激情综合网站| 亚欧性爱在线无码| 天天看高清麻豆| 91在线免费精品视频| 五十路三级片| 超硑97精品| 国产深喉视频一区二区| 亚洲一本大道中文字幕无码在线| 色鬼在线综合| 1204金沙人妻懂旧版免费| 天天噜| 激情AV| 日韩欧美性吧婷婷乱伦大香蕉| 五月综合婷婷久久网站| 亚洲熟妇丝袜在线观看| 久久久久久久| 温婉少妇玩3p| 新视频sss国产| 国产黄色在线播放观看| 亚洲激情综合| 久操电影网| 五月天黄色激情视频| 爱欲AV| 亚洲 暴爽 AV人人爽日日碰| 人妻少妇久久久| 久久日韩肥臀| www.超碰在线| 精品无人区麻豆乱码1区2区图片| 中文字幕aⅴ在线视频| 九九十八精品| 欧美性第一页| 亚洲性综合9| 九九九九免费| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 国产欧美伊人| 国产精品不卡一区二区三区| av橘色网站| 韩日性爱av| 久久免费老司机精品| 欧亚日韩一区在线| 久操99| 国产色产精品在线观看| 美女啊啊啊啊啊啊啊| 久久久九| 五月天色色网站| 涩涩久久精品| a级理论午夜日本| 国产综合久| 夜夜爽77777| 深夜福利黄片| 麻豆一区在线| 欧美一级久久久久久久大片动画| 欧美一区二区在线资源| 亚洲av国产av综合av卡| 使劲用力艹少妇视频一区二区| 97啪啪| 欧美白嫩女HD| 黄片无码在线制服| 春色综合网| 亚洲少妇诱惑| 中文字幕黄片在线| 色女免费在线观看视频网址| 亚洲 自拍偷拍 欧美| 97超碰资源网| 亚洲乱熟女一区二区三区大香蕉| 97伊人| 69综合网| 一级特黄aaa大片在线观看成人一级片在线观看 | 国产女人极品高潮毛片| 91狠狠综合久久久久久| 97超碰久久| 妇女视频网站| 日韩成人大片一区二区| 玖玖久久久| 78p欧美| 在线可观看的黄色网址| 天美传媒婬乱在| 天天弄欧美| 在线看免费无码AV天堂的| 天天噜| 国产性感在线观看| 玖玖玖玖精品国产剧情| 欧美在线大香999| 一区久久久二区| 国产精品久久久久久久黄无码| 亚洲欧美综合网| 国产精品白丝在线播放| 大色综合网| 久久久久亚洲精品| 日本成人电影资源网| 亚洲丝袜在线观看| 国产美女口爆吞精| 国产亚洲精品无码三区| 96国产精品| 中文字幕久久精视频久久大全| 久操不卡视频| 韩三级a视频在线观看| 日日躁天天躁狠狠躁| 国产一区麻豆免费观看| 国产中出内射一区二区| 曰本91情色| 色99视频| 内射夫妻三片| 一区二区影视| 超碰夫妻97| 极品五月天噜噜| 天天干天天操天天干天天操| 欧美v亚洲v综合v国产v妖精| 97超级久久| 亚洲熟女乱综合一区二区三区| 91男女啊啊啊| 亚洲av强奸乱伦| 一中国女人毛片水真多| 99re这里只有精品2| 操死我了嗯嗯嗯| 美女在线H91| 久久草草欧美精品| 日韩成人性爱电影在线播放| 精品国产91av一区二区三区| 91欧美 | 黄片com.| 欧美传媒| 立川理惠被中出无码| 久久尹人大香焦视| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 97欧美性爱| 嫩草影院在线观看精品| 在线a v| 亚洲国产ⅴ高清在线观看| 日韩免费簧片| 熟妇综合一区二区三区| 男女啪啪啪18禁网站| 999综合网| 色区97| 久久99精品国产| 国产天天骚| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 亚洲一区二区三区久久 亚洲一区二区| 色色99| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 亚洲AV无码久久精品蜜桃小说| 91骚妇| 一区二区 电影 亚洲| 91激情网| 老鸭窝日丰县女人| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 欧美亚洲激情| 久久六六| 中文字幕日韩电影人妻| 美女午夜福利免费视频| 亚洲导航深夜福利| 国产精品久久久无码AV网站| 亚洲精品人妻吞精av| 91久久婷婷| 精品少妇一区二区三区免费观看| 免费观看欧美日韩操逼视频| 老熟女91av| 黑人与人妻| 精久久久| 在线视频资源| 性久久久| 日亚韩精品视频二区三| 大香蕉久| 女人爽到高潮潮喷18禁网站 | 久久99草| 抽插一区二区视频| 99热在线观看| 北约熟女超碰| 久久鲁干| 一区二区你上我| 亚洲AV不卡在线观看尤物| 干妹子| 91爱| 无遮挡一级毛片视频免费的| 人人做人人妻人人夜视频| 一二三四日本视频高清| 中日韩久久人妻一区二区| 欧美综合网1| 99re免费| 人妻乱仑一区二区三区| 青青草日韩无码| 91色综合激情| 亚洲精品蜜桃久久久| 国产精品免费1区2区视频| 青娱乐欧美激情一区二区| 欧美系列在线一区二区| 欧美78p| 九九九草| 日本精品一级二级三级| 中文字幕亚洲热播人妻| 成人五月香网在线| 超碰97导航| 欧美片第一页| 高潮的A片激情扒开一区| 九九热精品| 久久久九九九九| 欧美夜夜| 91狠狠综| 成人免费不卡在线视频| 国产大片精久久久久久| 丰满人妻-区二区三区免费看 | 亚欧美色| 亚洲性爱免费电影| 98一区二区精品| 久热精品在线| 一区二区三区黄色片a| 免费啪啪一级视频| 91国产精品熟女| 精品玖九九久| 国产三级电影免费观看| 四虎在线播放| 欧美精品成人一区二区在线观看 | 久草网站免费在线观看| 久久精品亚洲婷婷| 蜜臀99久久国产| 色官网在线| 亚洲中文电影| 国产粉嫩蜜臀av一区二区三区| 色99色| 天天操天天干美女网址导航| 性暴力欧美猛交在线直播| 欧美亚洲激情小说| 国产白丝AV| 99操逼| 天天综合91入口| 伊人久久大香线蕉无码| 打av高清| 热思思免费视频| 中文字幕 一区二区 亚洲无码| 日日骚一区二区三区| 亚洲最大网站av| 五毛骚逼极品美女怕怕| 1人人看人人摸人人操| 怡红院怡春院| 婷婷av在线中文字幕| 99色色网| 后入国产| 婷婷色一区| 国产三级片在线观看| 看日韩美女二区三区免费操逼视频 | 激情综合网五月婷婷五月天| 欧美在线色| 亚欧毛片基地国产毛片基地| 玖玖综合色| 亚洲影院无码在线| 大香蕉伊人在线成人AV在线观看| 大屁股人妻女教师撅着屁股| 国产13区| 加勒比海色香蕉婷婷| 大香蕉碰碰| 91在线免费精品视频| 蜜伊人色综合97| www.亚洲黄色| 中国黑人三级片网站上区| 高清无码在线播放网站| 婷婷15月天青娱乐| av绯色| 高清不卡 中文 人妻| 伊人色综合网电影| 精品人妻一区二区三区鲁大师| 98色网| 人妻少妇久久中文字幕一区二区 麻豆| 亚洲一区深夜| 日本操逼aaaaa| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 色综合加勒比四四季| av在线观看不卡网站| 又摸又舔在线观看网站| 一区二区影院| 天天干夜夜鈤| 亚洲熟妇无码一区二区三区| 亚洲无码电影久久久| 一区中文字幕二区日韩| 人妻少妇被猛烈进入中| 高潮9999外国| 亚洲限制级在线| 天天综合网91| 97色97好| 岛园激情| 69视频入口| 久操视频在线| 强奸a片网| 九九久久玖玖| 国产欧美成人精品| 丁香五月天堂网| 久久精品福利影院| AV天黑人| 一区二区三区 丝袜 高跟 美腿| 五月天久久综合网| 人妻蜜桃臀| 99999精品成人| 国产综合在线视频网站| 一二三四区操操Av| 综合激情97 | 热久久无毒不卡| 污到发麻的视频 国产| 免费啪啪一级视频| 最新日本中文字幕| 中文字幕第二页| 高清不卡一二三区视频......| 色一色综合网| 91色人妻| 91麻豆天美传媒在线| 黄色十八禁| 91N欧美| AAAAAAAAA黄片| 天天92av| 国产青青综合伊人| 青青草啪啪网| 黄片免费看黄片免费看| 操操操五月天婷婷丁香影院| 密臀成人视频久久久| 日韩激情视频| 国产欧美日韩女同性恋ww喷水精品| 欧亚乱色熟女一区二区| 粉嫩av在线| 综合网亚洲1| 91撸色网 玖玖网 欧美| 久久9视频| 99在线免费公开视频| 午夜福利 成人 91| 香港日本韩国人妇99www.wccm20| 婷婷午夜成人色中色| 日韩亚洲欧美中文字幕| 情色五月天就去干| 久草毛片电影怡| 91校园春色长篇| 操高情无码| 日韩黄片视频试看| 中国农村熟妇毛片视频| 992视频一区| 欧美色亚洲色| 校园春色亚洲无码| 日日A∨| 99抽插| 99re视频在线观看这里只有精品| 亚洲精品中文字幕一区在线视频| 国内毛片无遮挡国产| 3PAV乱伦视频| 日韩精品-原创伙伴| 亚洲同性aV综合| 九一国产精品| 九九九九一级| 欧美一二级| 97在线青| jiujiujiujingpin| 国内精品不卡无毒99999| 久久丁香五月天| 五月婷婷性爱| 91人妻爽爽人人做人人澡| 久久美女国产| 国产福利在线视频网站| 91性高朝久久久久久久久| 高清国产精品福利网站| 日本色日夜干| 少妇被c 黄 免费观看| 一级乱伦网站| 在线看污网站| 久久久久女教师免费一区| 久久东京热成人| 久草精品在线| 亚洲天堂资源网| 国产精品人妻无码久久久互動交流| 人人妻人人玩人人澡人人爽| 夜夜欢天天干| 电家庭影院午夜69久久夜色精品国产69乱| 精品十八在线观看| 久久久999国产精品| 亚洲图片第一页| 色汉综合| 91情色| 欧美一区二区三区四区综合| 人干人人人操人人摸| 日本三级网页| 六月色色| 防屏蔽在线视频| 97超碰碰碰| 精品九九九九九九九| 日日日色色色色色| 欧日韩一二三f区| 久久久成人精品| 人人看欧美性爱| 成人女人国产| 骚人妻少妇视频| 久久人人舔人人爽舔人人av片| 四虎影视永久在线免费| 强奸乱伦大香蕉网| 日本精品成人无码| 亚洲日韩肥臀视频在线观看| 中美日韩毛片| 久久人妻少妇| 欧美日韩中文字幕人妻| 97香蕉网| 97人人夜夜精品视频| 黄网色一区二区三区四区精品| 亚州国产精品乱| 99re不伦| 欧美性少妇| 99久久无码| 午夜男女爽爽爽影院视频| 日韩激情啪啪|