uniapp+unipush推送配置

APP推送記錄

一、使用框架
Uniapp+unipush推送插件
二、需要提前準備的
1.準備自有證書
可以用這個網站—香蕉云編(用于安卓 ios證書生成)https://www.yunedit.com/update/androidzhengshu/list
安卓證書生成后,下載證書,除了原文件的保留,也要把證書信息記錄下來,如 (密鑰庫密碼和密鑰密碼 密碼設置最好設置到一樣的)密鑰庫密碼、密鑰密碼 、證書md5值 、sha256值、 sha1值等保存到那,后續使用。
2.新建uniapp項目
新建項目后,manifest.json文件中設置包名(包名規則:com.你的公司.你的項目)和appId,這2個至關重要,一旦設置最好不要輕易修改
在這里插入圖片描述

3.配置unipush
在manifest.json中,你不勾選unipush手動打一次包
在這里插入圖片描述

然后在進入manifest頁面點擊配置就可以跳轉到配置網站頁面
在這里插入圖片描述

進入網站后你就可以看見你的項目了,
點擊左邊菜單uni-push來設置你的應用信息。
在這里插入圖片描述

這樣基本信息算設置完成。
接下來,如果你想要app接受離線推送(當app被徹底殺死),那么就需要去進行廠商推送設置,這是一個很麻煩、很漫長的過程。
在這里插入圖片描述

接下來你需要去各個廠商申請企業開發者賬號,成為開發者(有些廠商不僅需要公司的各種信息還需申請者的身份證還需要對公打款),當這些都申請成功了你以為完了?不,還需要去應用服務那申請應用,去推送服務那申請推送。
1).比如華為:配置推送服務時,必須申請自分類權益
2).比如小米:如果你的應用要上架(需要軟著、備案等信息),如果你不上架,那么就需要先提交工單,申請不上架應用,申請通過后,左邊菜單才有個企業內部應用,在這個下面去新建應用后還得進行上架申請(準備好app圖片、還得打空包等),打空包的文檔如下
在這里插入圖片描述
在這里插入圖片描述

審核通過后,就點擊小米平臺的推送服務,如上圖,剛開始是未啟用狀態,你得再去申請,當審核通過后狀態就會變成已啟用。當操作中有應用信息的時候,你就可以點擊了,再去消息分類管理/channel列表中申請分類,(https://dev.mi.com/xiaomihyperos/documentation/detail?pId=1655這是分類文檔,在申請時需要提前了解)
在這里插入圖片描述

當審核成功后,留著通知類別id后面用。
3).比如vivo,這要求應用必須上架,但是你又不想上架又想繼續使用vivo的廠商推送通道。你就得去提工單了,告訴他你又不想上架又想繼續使用推送服務的原因,并提交蓋了公章的承諾函。等審核通過后,他會要求你先進行上架,這下你就得保證你的app包有隱私協議,登錄頁面有隱私協議詢問,app里面有隱私協議入口,隱私協議還可以外網訪問。保證這些后就可以上架了,當你調通了后就得馬上下架app。
4).比如oppo,當你的應用和推送都申請了,還得去申請工單,提交不上架應用推送服務申請(準備隱私協議測試報告、app包),找到"/channel_id": “填寫OPPO平臺登記的渠道ID”,“/category”: “填寫Opush消息類別category”。
4.返回dcolud配置unpush

當所有廠商申請好了,可以回到這里配置廠商通道了
在這里插入圖片描述

三、集成驗證

  1. 客戶端獲取 cid
    假如我要給“張三”打電話,那就需要知道對方的電話標識,即電話號碼是多少。 同理,要給某個客戶端推送消息,也需要知道該設備的客戶端推送標識。
    啟動 app 后成功獲取 cid 則說明云打包 “在線推送” 成功,支持在線推送。
    先跟著示例代碼簡單體驗,詳細的uni.getPushClientId API介紹 詳情參考 代碼示例:
    // uni-app客戶端獲取push客戶端標記,代碼可以實現在App.vue中
    uni.getPushClientId({
    success: (res) => {
    let push_clientid = res.cid
    console.log(‘客戶端推送標識cid:’,push_clientid)
    },
    fail(err) {
    console.log(err)
    }
    })
    在這里插入圖片描述

1). 校驗廠商離線推送是否集成成功
輸入上方獲取的 cid ,查詢到對應的 Device Token 則說明云打包 “離線推送” 成功,同時支持離線推送。
如果未查詢到 device token,則只能 “在線推送” 。離線推送想要手機接受到還需要配置云函數js
在這里插入圖片描述

2.服務端推送消息
注意:使用 uni-push 2.0,服務端不支持用個推 api 推送,只能用 dcloud 提供的 服務端(云函數)推送 。

unipush2快速接入指南:

uni-push 2.0 常見問題:https://ask.dcloud.net.cn/article/40291

1).云函數創建
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

注意:擴展庫依賴 3 張 opendb 表:opendb-tempdata,opendb-device,uni-id-device。公測版 uniCloud,執行擴展庫會自動創建。如果你使用的是 uniCloud 正式版需要自己在 uniCloud 的 web控制臺 創建這3張表。
示例如下:
在這里插入圖片描述
在這里插入圖片描述

3.云函數執行
在云函數文件目錄右鍵(或按快捷鍵ctrl + r)-> 上傳并運行云函數,此時你的客戶端將收到推送消息(應用關閉時為通知欄消息,在線時代碼監聽到推送消息)。
云函數中調用uni-cloud-push擴展庫的sendMessage方法,向客戶端推送消息

// 簡單的使用示例  
'use strict';  const uniPush = uniCloud.getPushManager({appId:"__UNI__XXXXXX"}) //注意這里需要傳入你的應用appId  
exports.main = async (event, context) => {  return await uniPush.sendMessage({  "push_clientid": "xxx",     //填寫上一步在uni-app客戶端獲取到的客戶端推送標識push_clientid  "force_notification":true,  //填寫true,客戶端就會對在線消息自動創建“通知欄消息”。  "title": "通知欄顯示的標題",      "content": "通知欄顯示的內容",  "settings": {  //消息有效期設置,單位毫秒,-1表示不設離線。默認是 2 小時,取值范圍:-1 ~ 3 * 24 * 3600 * 1000(3天)之間  "ttl":86400000  },  "payload": {  "text":"體驗一下uni-push2.0"  },  "category": {  //HarmonyOS NEXT系統(純血鴻蒙、非安卓鴻蒙)的消息分類,要給鴻蒙設備推送時才必傳  "harmony":"MARKETING"  },  "options":{  //這里是需要配置的,之前進行消息分類申請"HW": {      // 值為int 類型。1 表示華為測試消息,華為每個應用每日可發送該測試消息500條。此 target_user_type 參數請勿發布至線上。      "/message/android/target_user_type":1      } ,    "HO": {      //值為int 類型。1 表示測試推送,不填默認為0。榮耀每個應用每日可發送該測試消息1000條。此測試參數請勿發布至線上。  "/android/targetUserType": 1   } ,  "VV": {      //值為int 類型。0 表示正式推送;1 表示測試推送,不填默認為0。此 pushMode 參數請勿發布至線上。  "/pushMode":1      } ,    "XM": {      //新小米消息分類下,私信公信id都必須要傳,否則請求小米廠商接口會被攔截  "/extra.channel_id": "填寫小米平臺申請的渠道id"   }    }  })  
};

注意:非OPPO、VIVO軟件商店官方渠道下載的應用,廠商不提供公信消息服務。
vivo、oppo 對接離線推送時,可以暫時發送測試消息,額外需要分別在 vivo 開放平臺 、 oppo開放平臺 錄入測試用戶(regid 對應個推cid 綁定的 device token,可以從個推后臺的“故障排查”中查詢 cid 信息獲取)。
在線消息無額度限制。離線推送各廠商的限額(包含 extra.channel_id 如何申請),詳見: 廠商通道限額
HarmonyOS NEXT系統(純血鴻蒙、非安卓鴻蒙)的消息分類,harmony取值參考 云端通知category取值
如果你希望當應用在線時,也通過“通知欄消息”來提醒用戶;可以通過以下兩種方式實現:
1).監聽到消息內容后,根據業務需要自己判斷是否要創建“通知欄消息”,需要就調用創建本地消息API uni.createPushMessage手動創建通知欄消息。
2).服務端執行推送時,傳遞參數force_notification:true,客戶端就會自動創建“通知欄消息”(此時你監聽不到消息內容),當用戶點擊通知欄消息后,APP才能監聽到消息內容。
先跟著示例代碼簡單體驗,詳細的 uniPush.sendMessage API介紹 詳情參考
檢查確認當前 app 的通知欄權限開啟后,則可以開始進行推送測試。
4.測試在線推送,打開 app 在前臺時進行推送
在這里插入圖片描述

  1. 測試離線推送,關閉 app 進程時進行推送
    在這里插入圖片描述

下面是已經用于項目的云函數js配置(其中小米、華為、oppo需要申請,其他的可以通用)

"HW": {"/message/android/category": 'DEVICE_REMINDER', //設備提醒
},
"HO": {
"/android/notification/importance": "NORMAL" //importance字段值為LOW:資訊營銷類消息 ;importance字段值為NORMAL:服務與通訊類消息
},
"VV": {
"/category":'DEVICE_REMINDER',//系統消息-設備消息
},
"XM": {
"/extra.channel_id": "", // 小米通知渠道ID 需要在消息分類管理-channel列表進行申請
},
"OPPO": {// "/channel_id": "填寫OPPO平臺登記的渠道ID",// "/category": "填寫Opush消息類別category",
},
"MZ": {"/noticeMsgType": 1 //魅族 請填寫整數類型的消息分類(0:公信;1:私信)
}

四、文檔地址
Doclud地址:https://dev.dcloud.net.cn/pages/app/push2/thirdparty
unipush2快速接入指南:
uni-push 2.0 常見問題:https://ask.dcloud.net.cn/article/40291
消息分類文檔:https://docs.getui.com/getui/server/rest_v2/third_party/?id=doc-title-28
離線配置文檔:
https://docs.getui.com/getui/mobile/vendor/qps/
廠商應用開通指南:
https://docs.getui.com/getui/mobile/vendor/vendor_open/
Vivo消息分類文檔:https://push.baidu.com/doc/guide/vivo_category

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/88973.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/88973.shtml
英文地址,請注明出處:http://en.pswp.cn/web/88973.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CentOS系統哪些版本?分別適用于那些業務或網站類型?

CentOS(Community ENTerprise Operating System)是一款開源的企業級 Linux 操作系統,因其穩定性、安全性和長期支持周期,廣泛應用于服務器環境。以下是 CentOS 的主要版本及其適用場景的詳細介紹。1. CentOS 主要版本CentOS 的版本…

【前端】【Iconify圖標庫】【vben3】createIconifyIcon 實現圖標組件的自動封裝

🧩 Vue 圖標管理全攻略:Iconify createIconifyIcon 封裝最佳實踐 在前端項目中,圖標無處不在。按鈕需要圖標,導航需要圖標,提示信息也少不了圖標。如何優雅、高效地使用圖標,是每個中大型 Vue 項目不可回…

數據可視化全流程設計指南

一、需求定義階段1. 明確核心目標回答關鍵問題:2. 確定數據特性import pandas as pd data pd.read_csv(your_data.csv) print(f""" 數據概覽: - 維度: {data.shape[1]}列 {data.shape[0]}行 - 類型分布: {data.dtypes.value_counts()} - 缺失值: …

Llama系列:Llama1, Llama2,Llama3內容概述

前言 參考視頻:大模型修煉之道(三): Llama系列講解 Llama1,Llama2, Llama3_嗶哩嗶哩_bilibili 本博客是基于視頻的學習筆記,以及相關知識點的擴充 Llama1 1. 動機 使用完全開源數據,性能媲美GPT3研究開源,禁止商用…

Docker 搭建本地Harbor私有鏡像倉庫

Docker 搭建本地Harbor私有鏡像倉庫 一、Harbor 核心價值與企業級特性解析 在容器化技術普及的背景下,鏡像倉庫作為容器生命周期的核心組件,其可靠性直接影響開發效率與生產穩定性。Docker 官方的 Registry 雖能實現基礎鏡像存儲,但存在明顯短…

AI 助力:如何批量提取 Word 表格字段并導出至 Excel

在日常辦公中,我們經常需要處理大量的 Word 文檔中的表格數據,如學生登記表、客戶信息表、報名表等。然而這些表格往往格式各異、字段命名不統一(如“姓名”“名字”“Name”),甚至含有合并單元格或多余空白行&#xf…

在 Azure Linux 上安裝 RustFS

本文分享在 Azure Linux 上安裝并使用對象存儲 RustFS 的過程。 關于 RustFS RustFS 是一款用 Rust 語言編寫的分布式存儲系統,兼容 S3 協議,是 MinIO 的國產化平替。詳情可以前往 RustFS 官網。目前,RustFS 支持二進制、Docker 安裝方式&am…

實現在線預覽pdf功能,后臺下載PDF

<!-- PDF預覽模態框 --><n-modalv-model:show"pdfModalVisible"title"投訴統計報告預覽":closable"false":mask-closable"false"positive-click"closePdfModal"positive-text"關閉":width"900"…

華為VS格行VS中興VS波導隨身WIFI6怎么選?流量卡OR隨身WIFI,長期使用到底誰更香?

在移動互聯時代&#xff0c;流量焦慮成為現代人的通病。面對"辦流量卡還是隨身WiFi"的抉擇&#xff0c;許多人陷入兩難。本文從實際需求出發&#xff0c;用數據和場景幫你精準決策&#xff0c;尤其這五類人群建議直接選擇正規隨身WiFi。一、這五類人&#xff0c;隨身…

AI網絡搜索

作為AI應用程序開發人員在了解函數調用&#xff08;Function Calling&#xff09;特性調用本地函數時可能注意到列表型參數tools中每一個元素都攜帶有一個type值。而在大多數函數調用示例程序中&#xff0c;這個type值一直被設定為“function”&#xff0c;這意味著它還可能存在…

39.Sentinel微服務流量控制組件

雪崩問題 微服務調用鏈路中某個服務故障,引起整個鏈路中的所有微服務都不可用。 解決方案 1.超時處理:設置一個超時時間,請求超過一定時間沒有響應就返回錯誤信息,不會無休止的等待。(只能起到緩解作用,并不能從根本上解決問題) 2.艙壁模式:限定每個業務能使用的線程…

基于hadoop的競賽網站日志數據分析與可視化(下)

【基于hadoop的競賽網站日志數據分析與可視化&#xff08;上&#xff09;】講解了如何用hadoop對數據進行初步處理&#xff0c;本篇主要講解用python對結果數據進行可視化分析。 ------------------------------------------------------------------------------------------…

Python爬蟲打怪升級:數據獲取疑難全解析

一、引言 **??? 在大數據時代,數據就是價值的源泉。而 Python 爬蟲,作為數據獲取的得力助手,憑借 Python 簡潔的語法和豐富強大的庫,在眾多領域發揮著重要作用。無論是電商領域的價格監測、市場調研中的數據收集,還是學術研究里的文獻獲取,Python 爬蟲都能大顯身手。…

基于R語言的極值統計學及其在相關領域中的實踐技術應用

極值統計學就是專門研究自然界和人類社會中很少發生&#xff0c;然而發生之后有著巨大影響的極端現象的統計建模及分析方法&#xff1b;在水文、氣象、環境、生態、保險和金融等領域都有著廣泛的應用。一&#xff1a;獨立假設下的極值統計建模 1.廣義極值模型. 2.極小值的處理.…

前端面試十一之TS

TS 是 TypeScript 的縮寫&#xff0c;是一種由微軟開發的開源編程語言&#xff0c;它是 JavaScript 的一個超集&#xff0c;為 JavaScript 添加了類型系統和對 ES6 的支持。以下是關于 TypeScript 的詳細介紹&#xff1a;一、特點類型系統&#xff1a;TypeScript 引入了類型注解…

Excel快捷鍵

Excel快捷鍵可以快速提高使用Excel的效率&#xff0c;下面將Excel快捷鍵進行整理匯總以備不時之需 標注顏色的為需要經常使用并可以顯著提高效率的快捷鍵 Ctrl相關快捷鍵【Ctrl】【1】 顯示【單元格格式】設置窗口,可以設置選中的格式【Ctrl】【2】 應用或取消加粗…

Windows 10/11安裝WSL、Ubuntu、Docker Desktop

WSL&#xff0c;Windows Subsystem for Linux&#xff0c;是微軟開發的輕量級虛擬機環境&#xff0c;允許用戶在 Windows上運行完整的Linux內核和用戶空間&#xff0c;適用于Windows的Linux子系統。能實現&#xff1a; 運行原生的Linux命令和程序&#xff08;如apt&#xff0c…

React之旅-06 Ref

當你想讓一個組件“記住”一些信息&#xff0c;但又不想這些信息觸發新的渲染時&#xff0c;你可以使用 ref。使用 Ref 前&#xff0c;需要導入useRef&#xff0c;代碼如下&#xff1a;import { useRef } from react;在您的組件內部&#xff0c;調用 useRef 并將您想要引用的初…

stm32-Modbus主機移植程序理解以及實戰

目錄一、背景二、代碼理解&#xff08;一&#xff09;main()函數例程代碼功能遇到的問題解決方式分析&#xff08;二&#xff09;eMBMasterPoll( void )函數例程代碼1. 變量聲明2. 協議棧狀態檢查3. 獲取事件4. 事件處理&#xff08;switch-case&#xff09;4.1 EV_MASTER_READ…

c++判斷文件或目錄是否存在

#include<sys/stat.h>#include<fstream>#include<string>#include<stdio.h>#include<stdlib.h>#include<vector>#include<io.h>#include<iostream>bool IsFileGood(string strFileName, book bFile){if(bFile) \\文件{ifstrea…