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

ARTICLE DETAIL

資訊詳情

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

uniapp推送服務(wù)端對(duì)接指南:ThinkPHP集成個(gè)推REST API V2

uniapp推送服務(wù)端對(duì)接指南:ThinkPHP集成個(gè)推REST API V2 簡介這是一套面向 uniapp 開發(fā)者的移動(dòng)端推送功能完整后端實(shí)現(xiàn)資源核心解決 uniapp 項(xiàng)目中集成 unipush 與個(gè)推 SDK 的服務(wù)端接口設(shè)計(jì)問題。內(nèi)容基于 Thinkphp RestAPI V2 構(gòu)建覆蓋客戶端設(shè)備注冊(cè)、Token 上報(bào)、服務(wù)端調(diào)用個(gè)推 API 發(fā)送通知、結(jié)果反饋與異常重試完整鏈路適合具備基礎(chǔ) PHP 和 uniapp 知識(shí)、希望快速落地推送模塊的中高級(jí)開發(fā)者參考。壓縮包共 40 個(gè)文件以 37 個(gè) PHP 源碼為主包含 GeTui.php、GTPushApi.php、GTClient.php 等 SDK 封裝與接口實(shí)現(xiàn)另有 README、license 及 composer.json 輔助說明包體僅 42KB體積小巧、結(jié)構(gòu)清晰可按模塊直接引入項(xiàng)目二次開發(fā)。資源已獲得 3754 人學(xué)習(xí)兼具實(shí)戰(zhàn)代碼與集成思路能幫助讀者省去排查官方文檔和聯(lián)調(diào)的時(shí)間快速理解 unipush 與個(gè)推服務(wù)端的鑒權(quán)、推送及回執(zhí)處理流程。1. uniapp 用 uniPush 做推送卡住你的往往是服務(wù)端個(gè)推SDK和ThinkPHP怎么接“前端明明拿到了cid后端卻始終推不出去”是 uniPush 接入里最典型的隱形門檻。幾乎所有人都會(huì)先在前端完成 init卻把真正的推送邏輯——個(gè)推 SDK、REST API V2 鑒權(quán)、通知和透傳的報(bào)文結(jié)構(gòu)——留到最后才碰。某開發(fā)者接推送時(shí)前后端一起寫前端半小時(shí)跑通了后端光簽名就調(diào)了一天。后來把 ThinkPHPRestAPI V2 整合成一套完整版服務(wù)端才發(fā)現(xiàn)問題不是“接入”而是“協(xié)議”。這套方案適合正在用 uniapp 做 App、后端用 PHP、想把通知欄消息和透傳消息都走通的開發(fā)者。下面按鏈路拆解到代碼落地再把排查清單放最后照著落地即可。2. 推送鏈路拆解uniPush、個(gè)推通道與 ThinkPHP 服務(wù)端的邊界2.1 一次推送從觸發(fā)到展示經(jīng)過了哪幾層先明確鏈路。App 收推送消息時(shí)不會(huì)由 uniapp 自己從業(yè)務(wù)服務(wù)器拉取而是依賴一個(gè)推送服務(wù)商的通道。uniPush 2.0 的前端能力本質(zhì)是把某個(gè)推送服務(wù)商的 SDK 封裝成了一套 uniapp 插件前端只需要拿 clientid、監(jiān)聽消息回調(diào)具體的下發(fā)、離線消息存儲(chǔ)、廠商通道接入全部在服務(wù)端和該推送平臺(tái)側(cè)發(fā)生。這個(gè)鏈路大致是業(yè)務(wù)后端 → 調(diào)個(gè)推的 REST API V2 → 個(gè)推服務(wù)端按設(shè)備在線狀態(tài)決定走哪條通道 → 在線設(shè)備走個(gè)推長連接離線設(shè)備走廠商離線通道比如 APNs、華為推送、小米推送等 → 客戶端收到后交給系統(tǒng)通知欄或進(jìn)入監(jiān)聽回調(diào)。明白這個(gè)層級(jí)就能理解為什么“推送不顯示”不一定是你代碼寫錯(cuò)而是廠商通道沒配置好。在線消息走個(gè)推長連接只要手機(jī)網(wǎng)絡(luò)通暢后臺(tái)發(fā)送幾乎即時(shí)到達(dá)熄屏后應(yīng)用進(jìn)程被系統(tǒng)殺掉消息就要靠廠商通道接力這一步依賴你在個(gè)推后臺(tái)申請(qǐng)的廠商推送服務(wù)以及 App 打包時(shí)的證書、包名、簽名設(shè)置。這些雖然是前端工作之外的事但服務(wù)端對(duì)接哪個(gè)通道、選擇什么報(bào)文直接影響送達(dá)率。2.2 為什么不建議直接用官方 SDK 裸寫很多 PHP 后端第一次做推送會(huì)以為引入個(gè)推官方 SDK拿到 appId 和 appKey 就可以直接 new 一個(gè)客戶端推一把。實(shí)際上 SDK 封裝得再好接入時(shí)仍然要面對(duì)三個(gè)問題token 有效期管理、返回碼處理、業(yè)務(wù)側(cè)推送記錄落庫。直接在業(yè)務(wù)方法里 new 一個(gè)推送對(duì)象token 請(qǐng)求會(huì)重復(fù)發(fā)生往往一天下來會(huì)把當(dāng)天配額耗在半數(shù)以上。另外一個(gè)推送服務(wù)不止“發(fā)一條消息”。實(shí)際項(xiàng)目里通常有單推、cid 批量推、按條件推、透傳消息還要求通知點(diǎn)擊后有回調(diào)落地。如果所有推送邏輯都散落在 controller 里修改簽名算法或加個(gè)模板字段就要到處找。常見做法是抽出一個(gè)獨(dú)立的 PushService 類負(fù)責(zé) token 緩存、報(bào)文組裝、網(wǎng)絡(luò)請(qǐng)求、落庫回執(zhí)controller 只管接收參數(shù)并調(diào)用。選擇 ThinkPHPRestAPI V2 整合不是為了復(fù)用 TP 的 ORM 那么簡單。TP 自帶的命令行模式可以讓你寫一個(gè)php think push:test去手動(dòng)驗(yàn)證推送隊(duì)列組件可以處理大批量 cid 推送的異步分發(fā)日志組件能記錄每次推送的請(qǐng)求體與返回值。這些對(duì)于一個(gè)上線后“看得到回執(zhí)”的服務(wù)來說是剛需。2.3 鑒權(quán)參數(shù)與 REST API V2 的簽名規(guī)則開始寫代碼前需要先從推送平臺(tái)后臺(tái)拿到 appId、appKey、masterSecret 三項(xiàng)。appId 標(biāo)識(shí)應(yīng)用appKey 是開放平臺(tái)應(yīng)用標(biāo)識(shí)masterSecret 是服務(wù)端專用密鑰。注意 masterSecret 不能寫在客戶端代碼里也不能隨前端打包下發(fā)否則等于把服務(wù)器鑰匙放進(jìn)用戶手機(jī)里。REST API V2 的 token 獲取過程是用 appKey、appId 和 timestamp 算出一個(gè)簽名然后 POST 到鑒權(quán)接口。簽名這里最容易出錯(cuò)。我一開始用 sha1、用的是秒級(jí)時(shí)間戳、拼接順序搞錯(cuò)白白調(diào)試一個(gè)多小時(shí)。正確的規(guī)則是按固定順序做字符串拼接appKey appId timestamp做 sha256timestamp 取毫秒級(jí)時(shí)間戳。這里有個(gè)玄學(xué)點(diǎn)有些接口文檔寫的是 timestamp 毫秒有些示例卻是秒如果服務(wù)端返回時(shí)間戳相關(guān)錯(cuò)誤第一反應(yīng)就是查單位。我們后面代碼里統(tǒng)一用 13 位毫秒。token 拿到后有效期默認(rèn)是一段時(shí)間可以緩存在 think\Cache 里避免每次推送前都重新鑒權(quán)。提示masterSecret 泄露后記得去后臺(tái)重置否則任何人都能調(diào)你的接口給你的用戶發(fā)垃圾消息。3. ThinkPHPRestAPI V2 服務(wù)端實(shí)現(xiàn)從數(shù)據(jù)庫到推送報(bào)文3.1 數(shù)據(jù)庫表設(shè)計(jì)與接口約定推送服務(wù)端先要把數(shù)據(jù)模型定下來。單推要記錄 cid、標(biāo)題、內(nèi)容、taskId、推送結(jié)果批量推還要記錄任務(wù)批次、總條數(shù)、成功條數(shù)。實(shí)際項(xiàng)目通常建一張 push_log 表關(guān)鍵字段如下。CREATE TABLE push_log ( id int(11) NOT NULL AUTO_INCREMENT, cid varchar(64) NOT NULL DEFAULT COMMENT 客戶端唯一標(biāo)識(shí), title varchar(128) NOT NULL DEFAULT COMMENT 通知標(biāo)題, content text COMMENT 通知內(nèi)容, payload text COMMENT 透傳數(shù)據(jù)JSON字符串, task_id varchar(64) NOT NULL DEFAULT COMMENT 個(gè)推返回的任務(wù)ID, status tinyint(1) NOT NULL DEFAULT 0 COMMENT 0處理中 1成功 2失敗, error_msg varchar(255) NOT NULL DEFAULT COMMENT 失敗原因, create_time int(11) NOT NULL, update_time int(11) NOT NULL, PRIMARY KEY (id), KEY idx_cid (cid), KEY idx_task_id (task_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4 COMMENT推送記錄表;cid 字段對(duì)應(yīng) uniapp 端 uni.getPushClientId 拿到的值一個(gè) App 安裝一次會(huì)生成一個(gè)或多個(gè) cid具體數(shù)量取決于不同端的通道注冊(cè)情況。task_id 是個(gè)推服務(wù)端返回的任務(wù)標(biāo)識(shí)用于后續(xù)查詢送達(dá)回執(zhí)。status 字段不能只存成功和失敗要加一個(gè)處理中因?yàn)榕客扑褪钱惒饺蝿?wù)接口返回 code 為 0 不代表每條都送達(dá)。接口約定上我會(huì)設(shè)計(jì)三個(gè) RestAPI 風(fēng)格端點(diǎn)單推、批量推、透傳。單推和透傳解耦開來前端業(yè)務(wù)上“點(diǎn)擊通知打開頁面”走通知欄消息payload“靜默更新”走透傳消息。這樣前端 onPushMessage 回調(diào)可以區(qū)分消息類型。3.2 封裝 PushServicetoken 獲取與緩存下面的 PushService 是我習(xí)慣用的結(jié)構(gòu)核心是 getAccessToken 方法和 sendSingle 方法。先看鑒權(quán)部分。?php namespace app\common\service; use think\facade\Cache; use think\facade\Log; class PushService { private $appId; private $appKey; private $masterSecret; private $baseUrl https://restapi.example.com/v2; public function __construct() { $this-appId config(push.app_id); $this-appKey config(push.app_key); $this-masterSecret config(push.master_secret); } public function getAccessToken() { $cacheKey push_token_ . $this-appId; $token Cache::get($cacheKey); if ($token) { return $token; } $timestamp (string)(time() * 1000); $sign hash(sha256, $this-appKey . $this-appId . $timestamp); $url $this-baseUrl . / . $this-appId . /auth; $body [ sign $sign, timestamp $timestamp, appkey $this-appKey ]; $result $this-httpPost($url, $body); if (isset($result[code]) $result[code] 0) { $data $result[data]; Cache::set($cacheKey, $data[token], 60 * 60); return $data[token]; } Log::error(push auth fail: . json_encode($result, JSON_UNESCAPED_UNICODE)); return null; } private function httpPost($url, $params) { $ch curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params)); curl_setopt($ch, CURLOPT_HTTPHEADER, [Content-Type: application/json]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $response curl_exec($ch); curl_close($ch); return json_decode($response, true); } }這段代碼里 token 緩存是重點(diǎn)。Cache::set 往 think 的緩存通道里寫一小時(shí)有效一小時(shí)到期后重新獲取避免每個(gè)請(qǐng)求都觸發(fā)一次 auth。timestamp 拼接成毫秒時(shí)間戳后轉(zhuǎn)成字符串避免 PHP 整數(shù)溢出。httpPost 方法里設(shè)了 10 秒超時(shí)推送接口在弱網(wǎng)下偶發(fā)慢響應(yīng)超過 10 秒就返回。這個(gè)超時(shí)可以按業(yè)務(wù)接受度調(diào)整但不要設(shè)置成 0否則 curl 會(huì)一直等ThinkPHP 的請(qǐng)求隊(duì)列會(huì)積壓。auth 接口的返回結(jié)構(gòu)是 code 為 0 時(shí)data 里帶 token。如果 code 非 0通常錯(cuò)誤信息里會(huì)明確提示 sign 問題還是 timestamp 問題。我第一次調(diào)通后發(fā)現(xiàn)錯(cuò)誤提示簽名校驗(yàn)失敗檢查后發(fā)現(xiàn)是把 appId 和 appKey 拼反了。這個(gè)接口對(duì)拼接順序高度敏感不是 sha256 算法選錯(cuò)是原材料順序錯(cuò)了。3.3 單推、cid 批量推與透傳消息完整請(qǐng)求報(bào)文token 拿到后推送才是最要命的。個(gè)推 REST API V2 的單推端點(diǎn)根據(jù) cid 走批量推送可以傳多個(gè) cid這里給出我驗(yàn)證過的報(bào)文組裝方式。public function sendSingle($cid, $title, $content, $payload []) { $token $this-getAccessToken(); if (!$token) { return [code -1, msg token獲取失敗]; } $requestId uniqid(, true); $url $this-baseUrl . / . $this-appId . /push/single/cid; $notification [ title $title, body $content, click_type payload, payload json_encode($payload, JSON_UNESCAPED_UNICODE) ]; $body [ request_id $requestId, audience [cid [$cid]], push_message [ notification $notification ], push_channel [ android [ ups [ notification $notification ] ], ios [ apns [ aps [ alert [ title $title, body $content ] ], payload json_encode($payload, JSON_UNESCAPED_UNICODE) ] ] ] ]; $result $this-httpPostWithToken($url, $body, $token); $this-logPush($cid, $title, $content, $payload, $result); return $result; }這里最關(guān)鍵的字段是 click_type。當(dāng)設(shè)置為 payload 后用戶點(diǎn)擊通知欄消息時(shí)App 會(huì)收到透傳 payload可以由此跳轉(zhuǎn)到具體頁面。如果你不設(shè)置它點(diǎn)擊通知只會(huì)打開 App不能拿到跳轉(zhuǎn)參數(shù)。Android 通道里我把 notification 重復(fù)放在 push_channel.android.ups 下面這是廠商通道的消息體和頂層 push_message.notification 并存。iOS 走 apns 的 alert 字段payload 作為一個(gè)自定義鍵傳給客戶端。注意 request_id 要保證每次推送唯一個(gè)推后臺(tái)會(huì)用它做消息去重和任務(wù)追蹤。遇到同一內(nèi)容重復(fù)推送時(shí)如果你沿用同一個(gè) request_id個(gè)推可能直接丟棄。我見過一次線上重復(fù)推送查了半天才發(fā)現(xiàn)是代碼里把 request_id 寫死了。uniqid(, true) 足夠日常使用并發(fā)高時(shí)可以在后綴拼接隨機(jī)數(shù)。批量推送端點(diǎn)類似只是把 url 換成批量 cid 端點(diǎn)。批量推不要循環(huán)調(diào)用 sendSingle否則每個(gè) cid 都會(huì)觸發(fā)一次 token 校驗(yàn)和 HTTP 請(qǐng)求批量 1000 個(gè) cid 就會(huì)產(chǎn)生 1000 個(gè)請(qǐng)求。正確做法是讓接口一次提交多 cid 到批量端點(diǎn)。public function sendBatch($cidList, $title, $content) { $token $this-getAccessToken(); $requestId uniqid(batch_, true); $body [ request_id $requestId, audience [cid $cidList], push_message [ notification [ title $title, body $content ] ], push_channel [ android [ups [notification [title $title, body $content]]], ios [apns [aps [alert [title $title, body $content]]]] ] ]; return $this-httpPostWithToken($this-baseUrl . / . $this-appId . /push/list/cid, $body, $token); }批量推送的返回結(jié)構(gòu)與單推一致都會(huì)返回 taskId但離線推送狀態(tài)還要等廠商回執(zhí)。批量接口一次提交的 cid 數(shù)量有上限控制我習(xí)慣每 500 個(gè) cid 拆成一批避免單次請(qǐng)求體過大。拆批邏輯放在控制器層批量任務(wù)入口負(fù)責(zé)切分循環(huán)調(diào)用 sendBatch。透傳消息和通知消息的最大區(qū)別是沒有 notification 字段客戶端收到 message 后不展示系統(tǒng)通知而是直接把 payload 傳給 uniPush 回調(diào)。場景是 App 靜默更新緩存、刷新數(shù)據(jù)、狀態(tài)同步。發(fā)送方式和單推相同端點(diǎn)只是 push_message 里只放 transmission 字段。$body [ request_id uniqid(trans_, true), audience [cid [$cid]], push_message [ transmission json_encode($payload, JSON_UNESCAPED_UNICODE) ], push_channel [ android [ups [transmission json_encode($payload, JSON_UNESCAPED_UNICODE)]], ios [apns [aps [content-available 1]]] ] ];透傳在 iOS 端要注意content-available 設(shè)為 1 表示后臺(tái)靜默推送這種推送不一定每次都會(huì)喚醒 App蘋果對(duì)靜默推送有頻率限制。不要把關(guān)鍵業(yè)務(wù)數(shù)據(jù)完全押在靜默推送的送達(dá)上有價(jià)值的消息仍要發(fā)通知欄消息并附加 payload。3.4 推送落庫與結(jié)果判斷前面 sendSingle 方法里調(diào)用 logPush 做了落庫這個(gè)步驟不能省。推送請(qǐng)求返回后先用 code 判斷接口級(jí)成功再記錄 taskId狀態(tài)置為處理中。等個(gè)推的回執(zhí)回調(diào)打過來后再更新 status 為最終狀態(tài)。private function logPush($cid, $title, $content, $payload, $result) { $data [ cid $cid, title $title, content is_array($content) ? json_encode($content) : $content, payload json_encode($payload, JSON_UNESCAPED_UNICODE), task_id isset($result[data][taskId]) ? $result[data][taskId] : , status isset($result[code]) $result[code] 0 ? 0 : 2, error_msg isset($result[msg]) ? $result[msg] : , create_time time(), update_time time() ]; \think\facade\Db::name(push_log)-insert($data); }為什么接口返回成功仍然置為“處理中”這是個(gè)推的重要特點(diǎn)。單推時(shí)接口返回成功表示消息已接受但送達(dá)回執(zhí)是異步的尤其離線消息要等廠商通道確認(rèn)快則秒級(jí)慢則幾分鐘。如果直接把 status 置為成功你看到的是“已發(fā)送”而不是“已收到”后面排查送達(dá)率時(shí)數(shù)據(jù)全假?;貓?zhí)接口可以單獨(dú)開發(fā)通過 push_log 里的 task_id 去匹配對(duì)應(yīng)記錄。如果 code 不為 0error_msg 里會(huì)直接給失敗原因。比較常見的是 cid 不存在、應(yīng)用被卸載、token 過期。此時(shí)狀態(tài)置為 2后續(xù)腳本可以篩出這些失敗 cid 做清理。我的習(xí)慣是每天跑一次定時(shí)任務(wù)把近七天的失敗記錄按 cid 分組確認(rèn)無效 cid 就從用戶表里解綁避免每輪推送都對(duì)著無效 cid 空打。4. 前端聯(lián)調(diào)與避坑排查cid拿不到、熄屏收不到、廠商通道限制4.1 uniapp 端 cid 獲取與上報(bào)后端準(zhǔn)備好之后前端要確保 cid 正確傳到服務(wù)端。在 uniapp 的 App 生命周期里調(diào)用 uni.getPushClientId 獲取 clientid然后 POST 到我們自己的接口。代碼不復(fù)雜但要注意調(diào)用時(shí)機(jī)。要在 manifest.json 里勾選 uniPush 并配置好相關(guān)參數(shù)后再調(diào)用獲取方法否則拿到的可能是空。async function bindPush() { const res await uni.getPushClientId(); const cid res.cid; if (cid) { uni.request({ url: https://api.yourdomain.com/api/push/bindCid, method: POST, data: { cid: cid, userId: uni.getStorageSync(userId) }, success: (resp) { console.log(cid綁定成功, resp.data); } }); } } uni.onPushMessage((res) { if (res.type click) { // 用戶點(diǎn)擊通知欄消息payload在這里 console.log(click payload, res.payload); } else if (res.type message) { // 在線消息或透傳消息 console.log(message, res.payload); } });bindPush 方法應(yīng)在 App 啟動(dòng)時(shí)調(diào)用且 cid 可能隨登錄用戶變化所以用戶切換登錄后要重新綁定一次。這里的 bindCid 接口后端要處理“一個(gè) userId 多個(gè) cid”的情況因?yàn)橥粋€(gè)用戶可能在不同設(shè)備登錄每臺(tái)設(shè)備會(huì)生成不同 cid。簡單做法是綁定表里插入一條記錄設(shè)備下線時(shí)調(diào)用 unbind。onPushMessage 回調(diào)里的 type 很關(guān)鍵。消息退了通知欄后用戶點(diǎn)擊回調(diào) type 是 clickApp 在前臺(tái)收到的消息走 message。有些開發(fā)者把業(yè)務(wù)跳轉(zhuǎn)邏輯全寫在 message 分支結(jié)果點(diǎn)擊通知時(shí)沒有任何反應(yīng)就是因?yàn)?click 分支沒處理。4.2 熄屏收不到消息廠商通道參數(shù)與簽名這是接入過程中血淚經(jīng)驗(yàn)最多的地方。App 在后臺(tái)或熄屏?xí)r系統(tǒng)會(huì)殺死應(yīng)用進(jìn)程長連接斷掉個(gè)推自己的通道無法直接通信必須靠華為、小米、OPPO、vivo、魅族或蘋果 APNs 的離線通道送達(dá)。個(gè)推的 REST API V2 能不能走通廠商通道取決于你在推送平臺(tái)后臺(tái)填寫的廠商推送配置以及服務(wù)端報(bào)文里 push_channel 下的 android 或 ios 內(nèi)容是否完整。從現(xiàn)象上講同一套后端代碼App 在前臺(tái)時(shí)每次都能收到鎖屏過幾分鐘再解鎖就發(fā)現(xiàn)消息不見了。這不是代碼邏輯問題是廠商通道沒申請(qǐng)下來或者申請(qǐng)下來但簽名對(duì)不上。Android 各廠商要求 App 簽名證書 sha256 值必須在廠商推送平臺(tái)登記否則廠商服務(wù)器直接拒絕下發(fā)。你的 App 打包若使用云打包需要確認(rèn)云打包用的證書與申請(qǐng)廠商通道時(shí)填寫的簽名一致。很多人開發(fā)階段用調(diào)試證書申請(qǐng)了通道后來換成正式證書打包忘記更新廠商平臺(tái)的指紋信息測(cè)試時(shí)就會(huì)出現(xiàn)這個(gè)翻車現(xiàn)場。iOS 端呢推送走 APNs 時(shí)對(duì)證書或 token 要求更嚴(yán)格。如果收不到推送先看官方的 device token 有沒有成功傳給個(gè)推后臺(tái)再看 APNs 的 p12 證書過期沒有。證書過期不會(huì)報(bào)錯(cuò)只是靜默丟棄消息后端的 taskId 顯示已發(fā)送但實(shí)際沒有送達(dá)。4.3 常見問題排查清單現(xiàn)象→原因→解決以下幾條是從調(diào)通到上線過程里最常見的坑把現(xiàn)象和根因與處理辦法按固定格式整理出來方便直接對(duì)照。現(xiàn)象一前端拿到的 cid 為空。 原因manifest.json 中 uniPush 配置沒打開或 App 端還沒觸發(fā)初始化。 解決檢查 manifest 配置確認(rèn) App 端使用 apk 包調(diào)試而不是 HBuilderX 模擬器預(yù)覽重新打包后再調(diào)用 getPushClientId?,F(xiàn)象二推送接口返回 code 為 0但手機(jī)收不到任何消息。 原因應(yīng)用殺進(jìn)程后離線廠商通道配置缺失或簽名指紋不匹配。 解決先讓 App 處于前臺(tái)測(cè)試一次能收到說明在線通道正常再鎖屏測(cè)試仍能收到則回到廠商通道配置排查?,F(xiàn)象三Android 8.0 以上設(shè)備收不到通知但低版本手機(jī)正常。 原因Android 8.0 開始通知必須有 channelId個(gè)推在部分廠商通道需要指定 notification channel否則系統(tǒng)直接丟棄。 解決在推送報(bào)文的 android.ups.notification 里增加 channel_id 字段并在 App 端提前創(chuàng)建同名的通知渠道。現(xiàn)象四同一臺(tái)設(shè)備登錄兩個(gè)賬號(hào)后推送綁到舊賬號(hào)。 原因cid 是設(shè)備維度賬號(hào)切換時(shí)沒有重新走 bindCid 邏輯。 解決切換登錄后前端主動(dòng)調(diào)用 bindCid把新的 userId 重新綁定到同一 cid后端綁定表采用 userIdcid 聯(lián)合更新?,F(xiàn)象五點(diǎn)擊通知沒有觸發(fā)回調(diào)App 只是被打開。 原因payload 沒有放在 click_type 對(duì)應(yīng)的字段里或 Android 廠商通道用了你自己的廣告跳轉(zhuǎn)。 解決確認(rèn)通知里 click_type 為 payloadpayload 為 JSON 字符串并在 onPushMessage 的 click 分支解析不要寫在 message 分支里。注意真正排查“送達(dá)率”問題后端 taskId 只是入口回執(zhí)回調(diào)才是出口。只盯發(fā)送成功會(huì)漏掉一半問題。5. 把推送測(cè)試變成自動(dòng)化CLI命令與回執(zhí)核對(duì)習(xí)慣推送接口在開發(fā)期調(diào)試時(shí)最忌諱在 uniapp 頁面里寫一個(gè)按鈕去觸發(fā)送推送。前端剛跑起來就要啟動(dòng)模擬器、登錄、綁定 cid麻煩且容易誤導(dǎo)。正確做法是在 ThinkPHP 里寫一個(gè)命令行指令直接傳 cid、標(biāo)題、內(nèi)容觸發(fā)推送服務(wù)這樣每次聯(lián)調(diào)只需一行命令。?php namespace app\command; use app\common\service\PushService; use think\console\Command; use think\console\Input; use think\console\Output; use think\console\input\Option; class PushTest extends Command { protected function configure() { $this-setName(push:test) -addOption(cid, null, Option::VALUE_REQUIRED, 設(shè)備cid) -addOption(title, null, Option::VALUE_REQUIRED, 通知標(biāo)題) -addOption(body, null, Option::VALUE_OPTIONAL, 通知內(nèi)容, test); } protected function execute(Input $input, Output $output) { $cid $input-getOption(cid); $title $input-getOption(title); $body $input-getOption(body); $pushService new PushService(); $result $pushService-sendSingle($cid, $title, $body, [page /pages/index/index]); $output-writeln(推送返回 . json_encode($result, JSON_UNESCAPED_UNICODE)); } }這個(gè)命令的方便之處在于不依賴任何登錄態(tài)拿到一個(gè)真實(shí)設(shè)備 cid 就能即刻驗(yàn)證后端改動(dòng)。推送結(jié)果直接顯示在終端里返回的 taskId 可以復(fù)制到推送平臺(tái)后臺(tái)的任務(wù)列表里查詢送達(dá)狀態(tài)。我平時(shí)調(diào)廠商通道參數(shù)就是靠它改一次報(bào)文跑一次命令省掉前端打點(diǎn)的時(shí)間。驗(yàn)證“是否真的送達(dá)”還有一個(gè)習(xí)慣不要在收到 code 為 0 后就開始改下一個(gè)需求。等推送返回后我會(huì)等十秒再掃一遍 push_log主動(dòng)查一下回執(zhí)狀態(tài)。如果回執(zhí)狀態(tài)遲遲不更新就去后臺(tái)看 taskId 的詳情確認(rèn)是卡在廠商通道還是已經(jīng)確認(rèn)送達(dá)。這種看起來很麻煩的流程其實(shí)能救你于上線第二天的“推送失靈”事故。從那以后我每次接入新版本 SDK 或換打包證書都會(huì)強(qiáng)制走一遍這個(gè)命令測(cè)試再重查一次回執(zhí)確認(rèn)回執(zhí)狀態(tài)里展示的是廠商通道的成功回執(zhí)才敢把改動(dòng)提交。希望這套鏈路和排查思路幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
岛国黄色大片网站| 国产日韩欧美三级片| 日本αv| 999国产精品999久久久久久| 91精品无码人妻系列| 激情小说亚洲视频| 精品视频久久久久九九九九9999| 老熟妇91| 东北老女人的激情视频| 免费观看国产不卡av| 欧美激情色婷婷花野真衣一区二区| 欧美Ⅴ性爱| 91色综合激情| 亚洲国产婷婷在线播放| 日韩性色| 人人澡综合涩| 成年女人一区| 都市久久精品激情亚洲| 97国产综合欧美| 欧美九九99久久精品| 欧美人黑A片无码免视费| 天天摸天天碰天天添青青| 天天综合亚洲综合| 国产日韩精品一区二区三区| 国产精品人妻熟女aⅴ| 啊啊啊啊啊舒服| 五月激情综合网| 免费观看日本操逼视频| 91色射| 青青草啪啪网| 91撸色网 玖玖网 欧美| 啊啊啊啊啊啊在线看| 日韩欧美午夜一区二区| 日本中文熟女视频| 操www| 97色在线视频| 久久久久9999精品九九九| 四虎永久在线精品免费网址| 香蕉99秘 精品一区丁香| 色综合色欲色综合色综合色综合| 色综合九九| 国产精品一区二区亚洲人成毛片| 国产精品网址| 中文字幕97| 色综合20p| 精品久久久久,69国产成人精| 大香蕉五月天| 婷婷色婷婷| 狠狠中文字幕| 五月丁香综合啪啪| 91狠狠色丁香婷婷综合久久| 超碰人人在线| 小草精彩毛片| 久久久久成人蜜桃精品| 99色色| 亚洲不卡不卡中文字幕不卡| 久久久男人的天堂| 欧美,日韩,中文,另类| 少妇国产不卡| 人妻AV在线| 大香蕉伊人亚洲| 国精品一区二区三| 日韩精品电影| 97免费在线观看| 日本 情色 1区| 精品无码一区二区三区| 九九热精品视频六| 亚洲av国产av综合av卡| 首页中文字幕中文字幕免费| 久久久成人国产精品无码| 四虎影视永久在线观看精品免费网站 | 天天干夜夜操一区二区| 国产精品com| 波多野42部无码喷潮在线观看| 91成人久久| 国产精品探花视频| 91精品人妻电影| 亚洲男人天堂Av| 男人天堂站| 欧美日日人人天天| 精品国产乱码久久久影院| 欧美亚洲韩国视频十五区 | 国产亚洲综合欧美一区| 无码欧美有限公司| 国产又粗又长的视频| 日本操逼视频在线| 人人操肉肉| 一类av片在线看| 色99在线| 欧美第一页| 欧美 日韩第一性色| 天天看天天干| A久久| 在线黄色污污网站| 中文字幕视频免费| 白丝AV| 亚洲欧美日韩夜夜| 久久久∴| 亚洲色性| 乱伦av麻豆| 精品一区二区三区蜜桃臀赵总 | 夜夜操天天肏| 超碰在线人人射| 日韩av在线播放不卡| 亚洲欧美天堂在线| 五十路六十路七十路熟婆| 天美麻豆精品视频99| 久久国色天香香蕉| 国产精品成人午夜福利| 精品国产无码中文| 99re69综合| 加勒比综合| 盗摄 精品 另类 一区| 青娱乐手机日韩在线视频| 91久久国产精品| 国产精品一级特黄aaa大片在线观看| 婷婷丁香六月天| 啊啊啊不要嗯嗯在线观看| 中文字幕精品探花视频| 日韩熟女精品无码专区一区二区 | 国产在线不卡导航| 国产91av在线播放| 色婷婷成人综合| av草草在线电影| 亚洲精品乱码线路中文字幕| 欧美天天综| 久久精品小视频| 性爱综合一区二区| 蜜臀av在线播放一区二区三区| 国产乱不卡| 久久无码成人| 老熟女综合网| 啊啊啊啊嗯嗯嗯用力好爽| 亚洲色婷婷综合久久一区二区三区| 亚洲成人性爱在线观看| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 乱欲一区二区| 欧美极品色| 东亚亚洲无码高清| AV色女综合| 九九热精品在线| 久久久久久免费电影| 熟女突然公开看18禁影片| 蜜臀av网址| 手机看片1025| 欲香欲色| 九九九九九九免费视频| 蜜桃臀 后入 一区 二区 三区 在线| 一起草三级AV电影在线观看| 日han少妇无码| 国产一区二区三区视频在线看| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 中文字幕日韩人妻视频一区二区三区 | 污污汅18禁网站在线永久免费观看| 九九九九日本 | 麻豆美女丝袜人妻中文| 久久的免费性爱视频| 国产女人视频三四五区| 99爱爱| 欧美啪啪女女| 久操电影| 久久精品成人一区二区三区蜜臀| 97人人干| 九九热超碰| 亚洲成a人v欧美综合天堂下载| 久久久久久电影| 天天射夜夜| 人妻少妇精品一区二区三区| 尤物网址| 久久老女人| 玖色av| 蜜臀AV成人精品蜜臀AV久久| 97久久视频| 日本性交操一区二区不卡系列| 久久机热| 日本一区99| 国产激情视频在线观看| 韩日性爱av| 久久久四区| 亚洲欧美综合网站| 亚洲一二三精品久久网| 97碰在线视频| 亚洲AV无码AV吞精久久久久| 日本欧美中文字幕| 另类图片天天影视| 色噜噜人妻av中文字幕| 人妻爽爽啪视频| 国产成人亚洲精品自产在线| 亚洲欧美日韩精品久久久一区二区| 丁香婷婷五月| 少妇一区二区三区| 99蜜桃臀亚洲成人在线观看| 日韩精品区二区三区不卡| 18禁精品网站在线看| 日韩欧美性吧婷婷乱伦大香蕉 | 大香久久| 久久精品操| 欧美论理片| 日韩99神马视频播放| 性站 | 日本欧美不卡| 国产精品久久久久久久久久久久久久吹| 一区二区三区四区久久视1| 能看的AV| 射 色综合| 六月婷激情福利天堂69| 人人色97| 高树玛利亚无码流出| 国产精品交换一区二区| 熟女中出视频| 亚洲天堂男人天堂| 99草精| 亚洲青青草| 日韩精品电影| 日本黄页视频在线观看| 久久精品高清无码一区| 久久人妻无码毛片A片麻豆| 91天天综合网,天天综合网| 99啪啪视频| 国产精品久久发布| 欧美图片色综合| 国产污视频麻豆传媒一区二区| 久久久久久亚洲精品中文字幕人妻| 日韩一级二级| 粘花网06av视频| 啊啊啊啊在线观看网址| 欧美一区二区三区成人性生活| 少妇第一页| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 欧美人妻色| 国产精品电影推荐| 国产精品色| 青草一区二区| 天堂俺去俺来也www久久婷婷| 曰本人妻人人澡人人夹| 屌色在线97视频| 欧美少妇第一页| 国产地址二三| 亚洲瓯美色图| wuyechaopeng| 日韩小电影| 人人看人人插| 欧美日韩999| 泰国AV在线观看| 欧美在线啊啊啊 | **一级毛片国产| 久久精品人体AV| 久久天天躁日日躁狠狠躁| 欧美日韩婷婷中文| 91爱网| 欧美日韩国产另类综合| 五月婷婷丁香| 好看的久久不射无码影视影院| 日韩丨制服丨中文|在线| 国产路线专区| 婷婷午夜成人色中色| 六月丁香啪啪| 亚洲精品久久一区二区三区蜜桃臀| 老司机香蕉| 日逼视频日本| 大香蕉伊人亚洲| 日韩欧美蜜桃精品久久中文字幕久久 | 久久久久久久免费A片国产成a人亚洲精∨品无码 | 精品黄色电影| 欧美日韩99| A啊啊在线观看| 人妻精品一区一区三区蜜桃91| 视频不卡中文字幕| 婷婷久热| 欧美日本视频一区| 欧美探花网| 超91综合网| 四虎影视永久在线观看精品免费网站| 天天爽夜夜爽夜夜爽精| 亚洲色图在线视频| 欧美天天综合在线| 亚洲欧综合另类无码一区| 啊啊啊 在线观看| 97超碰伊人| 亚洲三区视频| 国产乱弄免费在线视频。| 久久超碰97| 中文字幕性感少妇av| 亚洲一二三| 国产1024在线播放| 国产不卡片| 综合网 欧美| 一区二区三区欧美激情| 久久久久人| 夜间福利片1000无码| 美女啪欧美一区| 水多多映视AV| 国产夜夜艹| 私人尤物在线精品不卡| 婷婷亚洲中文字幕在线| 69一区二区| 日韩三四五区| 国产日韩无码一区二区三区久久区| 99精品无码| 国产美女91| 欧美性爱另类综合| 91白虎| 国产一级片| 97亚洲中文| 9久超碰| 成人国产视频在线观看| 在线 亚洲 网爆 自拍| 欧美综合网| 日韩天堂av电影在线观看| 第45页一区二区| 日本天堂在线播放| 色综合中文字幕不卡| 激情自拍 校园春色| 女性91网站| 插入综合网| 夜夜草天天| 91撸色网 玖玖网 欧美| 人妻少妇av在线观看| 欧美色图另类图片| 校园春色之综合网| 日韩av不卡在线看| 九七人妻在线| 五月激情综合网| 成人免费性爱视视| 日韩中文9| 操逼网免费无码视频| 亚洲欧美综合网| 久久香蕉国产传媒一区剧情天美| 日韩偷拍一区二区三区| 加勒比无码毛片| 亚洲激情网一二三四区| 国产又黄又粗的视频| 少妇99| 久久乐| 91亚洲色人| 青青草原成人| 成人色女网| 久草视频分类在线| 久久 国产 无码| 91N综合网| 欧洲中文字幕| 大香蕉人妻| AAAA欧美日韩| 男人的天堂99| 婷婷九月色| 一起草三级AV电影在线观看| 天天影视网色欲色香| 黑丝少妇| 日本99视频| 樱花蜜乳av| 蜜臀久久久99久久久久 | 亚洲精品a人片在线观看视| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 欧美,亚洲,日韩,v,天堂,手机在线观看| 六九九九| 欧美成人精品一区二区男人蜜臀| 日本操嫩b网| 伊人991| 国产综合网站在线播放| 少妇熟女视频一区二区三区 | 久久久久久亚洲中文| 亚洲码和欧洲精品激情系列| 中文字幕一区日韩精| 蜜臀99久| 精品一级| 啊啊啊轻点在线观看| 爱爱动态试试看6 0秒| 久久婷婷五月天| 亚洲综合另类小说色区亚洲成av人片在www| 日日夜夜模| 久草资源在线视频官方总站日韩丝袜美腿| 国内毛片无遮挡国产| juliaann丝袜| 91高潮喷水美女| 精品国产污一区二区三区| 五月丁香综合网| 日韩av在线播放不卡| a片自拍直播视频| 国产高清自拍视频| 国产一区二区在线播放量| 欧美九九九九九| 最新AV在线| 天堂亚洲精品| 舔人妻中文免费视频| 欧美在线中M| 日本男人插女人的逼黄色| 一区 欧美 日韩 麻豆| 美国美女AV在线| 午夜激情床戏激情| 性生活无遮挡纯毛片在线看| 青青伊人久久| 亚洲精品97久久中文字幕| 熟女熟妇伦久久影院毛片一区二区 | 欧美性暴力猛交XXXX | 一区二区三区色综合| 97精品97久久| 精品少妇一区二区| 日韩欧美日韩| 亚洲欧洲日韩国产自在线| 熟女人妻一区二区三区| 欧美在线官网| 久久999久| 校园春色综合香蕉| 天天综合网亚洲综合网| 天天影视91看看| 国产又猛又粗又爽又黄| 一区二区视频在线播放| 99999精品视频| 欧美综合网1| 97在线播放| 99视频内射三四| 色综合加勒比四四季| 天天天操天天天爱| 亚洲国产成人7777| 久久色激情一区二区三区| 久久草大香蕉| 欧美激情精品久久久久久| 男人高清无码一区二区| 欧美国产精品| 欧美久久婷婷| 女优免费一区二区永久| 爱干爱射网啊啊啊| 夜夜嗨一区| 国产多人在线观看视频| 爽爽淫人网| 久久视频,这里只有精品| 男人天堂网站| wwwcaobibi| 60秒免费小视频| 亚洲精品一区二区精华| 国产精品午夜成人福利| 色原狠狠天天天| 草草网站影院白丝内射| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 欧美日韩系列| 99碰碰| 热热色色综合| 国产成人无码久久精品| 亚洲色图综合网| 一级@啪啪视频| 蜜臀99999| 国语精品内射在线观看| 干B| 久久久无码av精| 日韩淫色网| 在线无码操| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 老鸭窝黄色视频网站| 国产精品久久久久久久电影渣男| 少妇被玩视频二三区| a亚洲欧美色欲| 欧美日韩精品国产91| 密乳AV免费观看| 四虎免费视频| 九九热免费国产视频婷婷伊人五月| 1024精品在线| 久视频在线观看| 青青伊人这里只有精品| 日本国产二线女色| 艹我哪美一区无码| 精品亚洲一区在线观看| 天天色天天干天天爱| 999九九九九国产动| 久久97| 国产精品久久久久久久AV大片| 青操影院| 麻豆福利视频导航| 日韩成人综合网| 国产精品永久免费10000| 久久久精品视频欧州站| 精品99999久久久久久| 欧美强奸乱| 久久69| 99久热精品99re6热| 精品一区二区成人动漫| 九九热久久99精品re| 国产呦精品系列在线观看| 日本午夜福利视频| 黑丝内射一区二区三区| 日本在线激情一区二区三区| 国产黄色在线播放观看| 日本成a人v网站在线观看| 99re在线视频国产| 中日无幕一二三四区| 日韩精品黄片免费观看| 欧美成人免费在线观看| 久久久青青草| 亚洲图片视频小说| 蜜桃臀一区二区aV| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 一区二区三区四区在线不卡| 日本人体九九九九九九| 激情啪啪拍91| 丁香五月天堂| 亚洲乱熟女一区二区三区大香蕉| 在线岛国新天堂8| 国产一级特黄大片处女| 综合操逼| 国产精品爽爽va在线观看98| 国产日韩区| 午夜小电影在线插入淫高潮| 7777奇米影视久久| 久久狠狠色噜噜狠狠狠狠97| 91第一页| 亚洲在线a| 欧美日韩1234| 成人av在线播放| 国产高清26uuu| 精品黑人一区二区| 国产高清精品福利| 六月婷婷激情| 超碰97玖玖爱| 久久一本大香蕉| 一区二区三区一亚洲中文字幕、综合区灬| 精品人妻久久久| 人人干人人操人人爱| 在线观看免费视频国产| 91精品久久久久久77777| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 国产极品美女高潮无套在线观看| 天天影视色香欲综合网小说| 亚洲欧美国产其他二区| 日韩人妻精品中文字幕| 欧美亚洲综合色| 日韩少妇在线视频| 欧美亚洲综合色| 又黄又粗又硬又长又大| 国产妇女精品视频青青草| 欧美亚洲手机在线| 国产精品久久久久久久毛片1| 中文字幕五区| 青青草原伊人网| 无遮挡男女激烈动态图| 99热综合| 伊人991| 精…码一二三区| 久精品无码av一区二免费国产在线观看| 国模限制级电影| 久区视频| 懂色AV蜜臀无码精品APP| a网站免费观看| 久久久久极品| 国产69精品久久久久99尤物| 日本黄色裸日本黄色裸体 | 天天干夜夜| 老子午夜伦不卡影院| 欧美三级一级| 在线αⅴ| 国产日韩精品一区二区三区| 97干色| 少妇无码太爽| 日日摸日日碰夜夜爽视频| 1024人妻| 精品九九九九九九| 国产乱码久久| 干少妇视频| 一区二区三区日韩欧美| 影音先锋视频在线| 伊人操操| 欧美疯狂做爰xxxx| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 中文字幕精品丝袜| 日本人妻最新在线中| 欧美成人精品一区二区三区| 麻花豆传媒剧国产MV出差| 久久AV无码1区2区3区| 日韩偷拍一区二区三区| 97久久久久久久久久| 亚洲综合网电影91| 成人小说另类在线| 人妻无码久久一区二区三区免费| 思思热在线cao| 超碰2017| 欧美日韩中国x| 在线观看一卡二卡| 欧美性爱视频免费一区一A| 日天天九九天堂666| 男人天堂.AB| AA特级绝黄| 九九九999久久久网站| 国产精品2020| 五月天伊人| 国产日韩欧美亚洲精品95| 亚欧洲日韩国产精品| 殴美综合色88| 97色插| 色噜噜婷婷| 亚洲精品天堂久久A∨51成人漫 | 免费操逼91| 亚洲加勒比色图| 超碰97最新人妻| 中文字幕艹艹| 密桃99999| 丰满的三级少妇欧美久久久| 天天看天天在线精品| 极品白嫩美少妇在地板上位骑射淫水泛滥| 好屌色综合| 蜜桃久久久久久久| 偷窥自拍亚洲色图| 国产精品 亚洲情色| 久久熟女人| 98一区二区精品| 操人91| 丁香五月激情五月| 十八禁视频网站| 影音先锋中文字幕日本好一区二区 | 99热这里只有精品99| 无码操逼网| 秋霞免费AV| av天堂手机版追回| 深夜激情无码| 91粉芽高清在线一区二区| 日韩黄色一区二区三区| 三级片网站在线播放| 色呦呦呦在线观看视频| 亚洲女毛多水多21P| 91人妻爽爽人人做人人澡| 中文字幕五区| 国产极品久久久| 日韩av色图| 亚洲第二页| 蜜臀久久99精品久久久久久-DVD原版全| 日韩av在线精品观看| 国产乱伦性爱区| 草草影院最新网址| 青青草天天亲夜夜操网| 精品国产人成在线| 国产白领连续中出在线观看| www.acm成人黄色毛片| 狠狠操狠狠| 国产隔壁老王影院在线| 青青草日韩无码| 欧美日韩中国x| 内射夫妻三片| 91 手机在线播放 绯色| 九九久久国产精品怡红院| 亚洲精品一区二区精华| 精品超碰中文在线| 伊人欧美大香蕉视频| 再深点灬舒服灬太大了添视频| 欧美日不卡| 日韩精品-原创伙伴| 黄片直播三级黄片两女一男| 使劲用力艹少妇视频一区二区| 中文字幕精品探花视频| 操九九九九九九| 亚洲欧美色图片| 色九月婷婷| 97伊人| 丁香五月婷婷五月| 外国免费性情大片| 激情五月天婷婷| 精品玖九九久| 天天插天天射| 麻豆天美一区二区| 欧美色三级片91| 大色综合| 久久av网| 国产日韩欧美亚洲精品95 | 我中文字幕6区| 日本操嫩b网| 97在线欧| 大香交伊人网| 国产精品不卡av免费在线观看| 亚洲最大的黄色电影网站。| 久热精品在线国产| 91爱看| 黑人黄片在线免费观看| 精品免费囯产一区二区三区| 久久久久久久久久久六六| 999久久久| 又黄又粗又硬又长又大| 人人妻人射| 欧美综合综合| AV天堂丝袜| 无码外流操逼视频| 色香91| 992这里有精品| 国内偷拍精品一区二区| 欧美天堂超碰97| 国产亚洲禁久一区二区| 91欧美网| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 国产成人久久久精品免费AV| 97日韩超碰超碰中文字幕| 久久久久久中文字幕中文字幕最新| 凹凸精品熟女在线观看| 久久天天躁日日躁狠狠躁 | 久久久99999久网站| 欧洲熟妇xxXx欧美老妇裸体| 欧美 亚洲| 牛牛久久国产精品视频一二三| 亚洲午夜福利视频| 中文字幕在线观看网址| 天堂资源站| 久久草草欧美精品| 十八禁的黄污污免费网站| 麻豆天美在线| 女人的天堂大香蕉网| AV九九| 久久精品国产AV一区二区三区| 日本高清视频在线观看黄已三辽| 一区黄二区黄| 一区二区三区视频在线观看免费| 婷婷色综合欧美日韩| 亚洲国产亚洲天堂| 啊嗯好大视频在线观看| 欧美精品999| 日韩熟女乱伦中出| 欧美97超碰| 日本高清一本二本免费不卡| 久偷拍| 男人天堂久久精品| 爱av免费| 免费又黄又裸乳的视频| 亚洲欧美天堂| 理论久久婷婷网8| 国产亚洲日本| 精品无吗久久| 美女黄色一级A视频| 无码视频黄色网战| 密乳AV免费观看| 国产乱伦视频污| 精品一区二区三区丰满熟女-亚洲欧美一区| 人人操人人射人人干| 亚洲图片欧美制度| 91xingse| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 国精综合一二三区影视| 97视频在线观看播放与子乱对白在线……| 亚洲中文字幕三级在线| 亚州AV无码国产精品| 草草影院日本第一页| 国产福利一区二| 大香蕉欧美| 欧美懂色综合网| 亚洲在线a| juliaann欧美丝袜办公室| 日韩在线观看AV| 美女十八禁| 亚洲成人AB| 久久久78| 97视频免费| 久 久无码人妻AV| 我要色综合网| av一区二区三区不卡| 欧美人黑A片无码免视费| 久操电影| 在线观看一级α片刺激高潮视频| 久96热在线观看视频| 久久精品国产精品一区| 中日韩一区二区三区欧美| 富女玩鸭子一级毛片| 肏逼视频日本| 在线岛| 欧美亚洲中文字幕| 人妻少妇色综合| 久久免费中文字幕在线观看| 欧美色997| 99re热| 亚欧洲日韩国产精品| 亚洲精品人体| 亚洲欧美精品国产一区二区| 在线观看免费视频国产| 一级啊性爱在线视频| www.色五月| 啊啊啊啊啊操我视频| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 亚洲第2页| 99久久9| 欧美亚男人的天堂| 亚洲欧美日韩国产丝袜自拍中文| 欧美激情一| 天天肏视频| 亚洲无码太久| 亚洲国产欧美中日韩成人综合视频| 天天干,夜夜爽| 亚洲激情 欧美色图| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 亚洲做性| 88xx成人精品视频| 亚洲性爱无码乱伦av| 国产按摩一区二区三区| 久久超碰大香蕉| 丝袜美腿操av| 自拍偷拍亚洲熟女妇人精品| 91精品黄在线观看| 欧美性区| 天堂亚洲精品| 亚洲精品国产无码高清| www久| 久久久久78| 一区二区不卡视| 婷婷丁香五月天综合东京热| 欧插网站| 蜜臀网址在线| 曰韩精品视频一区二区| 亚洲男人久久综合天堂| 综合亚洲情色| 天天操天天干一区二区 | AV在线性爱| 99热精品在线| 人妻熟女一区二区| 激情熟女12P| 99热这里只有精品8| 亚av顶级裸体一区二区三区四区五区| 婷婷激情四射| 国产18精品亚洲精品| 久久九七| 翔田千里AV无码秘 三区| 久久亚洲av成人无码国产| 97天天弄| 欧美福利视频啊啊啊啊| 欧洲色色| 亚洲精品蜜桃久久久| 无码操逼网| 老熟妇综合| 欧美国产精品久久九九| 亚洲高潮少妇| 十八禁黄色| 亚洲图片偷拍视频区| SUV一区二区在线看| 国产精品懂色tv影视免费观看| 操操碰| 日日日日做夜夜夜夜做无码97| 欧美午夜视频免费观看| 91色黑人少妇| 精品蜜乳AV免费观看| 欧美综合站| 欧美性夜| www.狠狠干.coom | 欧美日韩小说| 精品久久人妻成人网| 久草精品一区| 97欧美性爱| 天堂精品| 中文字幕jul-617人妻熟女| 亚洲情色综合网| 亚洲中文日韩欧美大香蕉视频| 91精品国久久久久久无码| 欧美日韩黄片精品在线| 国内操逼视频二区| 日本高清视频xxxx| 伊人一区二区三区| 日韩欧美综合激情| 国产和美国毛片| 欧美日韩性爱操大逼| 操老熟女AV| wwwcaobibi| 九t超碰| 欧美久久草熟女| 韩国三级一线观看久| 精品视频97| 国产高清在线观看欧美| 久9久9久9久9久9久9 | 超碰九7免费| 久久手机视直播| 日本操逼视频不卡直接放| 青青草字幕AV| 强奸乱亚洲| 色香欲影| 九九拍拍精品视频在线播放| 91社操逼| 欧美亚洲手机在线| 怡红院怡春院| 乱伦av国产| 一本色道久久综合精品婷婷| 欧美精品在线观看| 18禁精品网站在线看| 欧美第五页| 嗯嗯嗯嗯啊啊啊好紧好大| 国产精品点击进入在线影院| 日韩人人精品| 97 亚洲 日韩 欧美 在线| 久久无码成人| 国产伊人精品在线| 东京热一区二区三区四区五区六区| av天堂精品久久| 国产精品97视频| 狠狠操一区二区| 国产尹人在线视频免费| 一级毛片电影免费看| 天天插天天操天天摸天天射天天看| 亚洲九九夜夜| A级毛片在线看免费| 热热色青青草| 激情文学 国产一二三aV| 亚洲最新a在线观看| 91狠狠综合网| 碰人碰碰人人开房人肉| 亚洲免费精品一区| 九九黄色视频在线观看| 立川理惠被中出无码| 四虎精品亚洲| 色九九九九| 91视频国品一二三区| 亚洲无码一二三区| 国内毛片欧美香蕉精品| 亚洲资源吧| 桃色人妻在线视频| 国产日本熟女顶级一区二区三区视频| 乱伦AVxx| 免费1级a做爰片观看| 欧州91高潮| 97 国产精品| 亚洲熟女乱综合一区二区三区| 亚码激情| 伊人婷婷五月天| 日本一区二区不卡精品| 一级做a爰片性色毛片久久| 夜夜欧美| 一本色道久久综合亚洲二区三区| 国产二区三区粉嫩在线| 澳门成人网站久国产日韩| 97精品综合久久| 亚洲码专区| 欧美aaaaaaa| 天天躁日日躁成人字幕aⅴ| 亚洲91色| 91美女小视频| 91欧美经典| 91在线观看,天天综合| 久久久91福利姬| 日韩精品9999| 9 7超碰在线免费观看| 神马视频久久久久久| 日本福利社| 99热思思| 日韩三级视频一区二区三区| 日本一级一级一级一级| 国产精品99久久久www| 超碰成人国产| 日韩成人大片一区二区| 黄片aaaaa一区| 久久riav中文精品| 国产日韩欧美亚洲精品95| 亚洲精品性爱片| 三级色综合| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 手机在线大香蕉| 97美日韩视频| 日韩小电影| 女性91网站| 亚洲欧美综合| 色综合国产在线观看| 乱伦熟女论坛| 国产精品亚洲无码| 无码日韩人妻av一| 国产精品久久伊人| 久99久视频| 99热| 91女网站| www.AV有限公司一区| 91影视亚洲| 欧成人在线| 97久久超碰| 国内精品a| 91动漫操逼视频| 免费视频无码| 超碰97资源大奶| 色天堂在线观看| av橘色网站| 亚洲熟女av中文字幕| 在线a亚洲视频播放在线| 操逼视频国产无套| 在线综合色| 男人的天堂2010| 97视频在线观看高清资源| 亚洲的天堂网| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 亚洲欧美另类少妇精品| 久久精品国产久精国产| 亚洲激情久久久伊人综合| 丁香色狠狠色综合久久小说| 7777奇米影视久久| 717影院理论午夜伦八戒| 四月丁香婷婷| 日韩欧美天堂| 97综合网| 日本在线不卡v二区| 日韩AV电影网站| 欧美大战久久久伊人| 人妻精品一区二区三区| 亚洲国产欧美一区二区潘金莲| 亚洲Av无码成人精品国产| 九九热九九热| 欧美日韩中国x| 欧美色图片| 美国一区二区免费视频| 人人澡人人爽人人精品| 超碰 国产熟女精品一区| 亚洲成人激情小说视频| 一区二区三区精品视频| 欧美一区二区传媒| 色吊丝 日日骚 清纯唯美| 无码区蜜乳| 美女刺激久久国产欧美| 国产精品久久久久久9999| 视频不卡中文字幕| 亚洲中文字幕精品久久久久久直播| 伊人色综合超碰| 97视频播放| 无码高清专| 东京成人一区| 九九九九九九视频免费| 91精品无码人妻系列| 宗合情欲网| 婷婷久月| 亚洲午夜AV| 亚洲国产中文字幕| WWW操逼| 中文字幕视频2区| 老妇女91| 五月天激情网图片| 偷拍亚洲情色| 久久直播国产| 嗯嗯啊啊好疼| 日本羞羞的视频在线播放| 久久人妻办公室视频| 少妇九九九九| 无码乱人伦中文视频| 97碰碰日本乱偷人妻中文的| 国产精品黑人一区二区三区| 艹我哪美一区无码| 综合五月天| 成人av免费观看| 四季av一区二区凹凸精品小说| 日本精品无码三级网站| 欧美日韩婷婷中文| 亚洲精品国产无码高清| 91国产大片| 久久久久久99AV无码免费网站| 久热69九色熟妇97| 91九九| 99超碰色| 激情小说在线视频| 极品丝袜无码| 97超碰色| 殴美综合色88| 色屁屁影院www国产| 黑人天8A∨高清网站| www.99色| 亚洲免费97免费| 午夜超爽| 久久人体一区二区| 欧美日韩操逼嗦吊| 国产蜜臀精品一区二区尤物| 免费看日本操逼视频| 五月天久久人妻| 校园春色 男人天堂 | 欧亚综合一卡二卡中文字幕| 亚洲国产熟妇综合色专区| 国产欧美伊人| 性久久久| 中国黄色特级精品一区二区三区片| 在线视频97| 国产91丝袜 在线播放| 人人看人人摸人人色| 99AV| 青青操青娱乐| 国产精品成人AV片免费看网站| 国产黄色动态精品| 久干9操| 午夜福利合集| 国产久久久9999| 18禁免费视频| aV中文麻| 国产大片精久久久久久| 久久男人精品| 女人香蕉久久毛毛片精品| 亚洲精品久| 中国少妇XXXX做受| 欧美第五页| 偷窥自拍亚洲色图| 中文字幕精品一区二区精| 超碰九九| 91天天综合网,天天综合网| 在线人人人人人人精品超| 男人天堂东京热| 97久久精品国产| 久久美女福利是上海美女| 极品另类| 蜜臀aV午夜一区二区三区| 91大胆欧美| 激情小说成人日本无码一| 91综合熟女| 国产久久男人天堂| 91 手机在线播放 绯色| 天天摸夜夜添无码小视频| 极品色综合| 久偷拍欧美日韩三区| 91 刺激在线| 亚洲va有码在线天堂| 人妻少妇精品视频一区二区三区| 97超级欧美| 国内91熟女人妻丝袜天天精品视频在线 | 亚洲男人天堂手机版| 四虎国产成人精品免费一女五男| 日韩免费性爱视频在线观看| 92性色国产午夜福利在线661| 日本免费二区三区| 天天看片麻豆| 日韩人妻操B| 久久久国产成人一区二区三区在线 | 在线无码操| 在线有码中文字幕| 人妻丝袜一区二区三区在线| 人妻熟妇久草在线| 91在线限制级| 亚州国产精品乱| A 天堂在线观看视频| 一级人妻性爱视频| 亚洲乱妇p22| 91男人综合| 亭亭在线资源| WWW.加勒比人妻一区不卡.com| 亚洲宅男天堂| 蜜乳av首页| 国产成人亚洲精品无码古代早漏男 | 久久成人国产精品| 好属操| 蜜臀99久久国产| 欧美线天码中字| 亚洲91大片| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 久久久涩| 五月天AV资源| 夜夜免费视频| 中文字幕人乱码中文字的预防方法 | 久久97超碰香蕉| 国产精品视频| 九九热视频这里只有精品| 久九九九九九九热| 东北黄色电影| 狠狠久久四虎| 美女露胸露屁股| 美女啊啊啊啊pc| 一区二区三区 丝袜 高跟 美腿| 久操大香蕉手机视频在线看 | 成·人免费午夜在线观看| 91精品91久久久中77777| 极品肉射| 啊啊啊啊啊好多水| 91 丝袜在线播放| 亚洲风情在线观看| 亚洲丝袜诱惑| 日韩一级二级三级免费看完整版| 精品在线蜜臀| 天天澡天天狠天天天做| 青青色在线观看| 亚洲欧美天堂| 日韩免费一级性爱视频| 欧美大香蕉久| 久久精品国产99精品亚洲蜜... | 亚洲天堂电影网| 亚洲欧美内射| 97久久国产精品女不卡| 蜜桃av色偷偷av老熟女| av网站免费看|