uniPush消息推送(离线)

本文详细介绍华为和小米推送服务的接入流程,包括账号注册、项目创建、证书生成、应用信息配置及unipush服务的集成步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、注册手机厂商账号(我只测试了华为和小米这里就说这两种)

华为开发者平台账号注册:(建议直接使用华为账号,否则可能无法使用推送);

1.直接到https://developer.huawei.com/华为开发者联盟去注册账号,跟着提示一步步走即可

2.账号注册完后到管理中心----》我的应用 ----》新建    去新建项目。

3.新建完成后,点击开发进入如下页面

     4.填写包名,这个包名很重要,需要和unipush的包名保持一致。

5.项目创建完成后需要生成指纹证书文件

              (0)如果配置了java环境变量就可以直接往下走,如果没有就需要执行cd命令进入keytool.exe所在的目录(java安装目录的bin下)。

            (1)在命令行输入命令      keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore  文件位置

例如:         keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore E:\test\android.keystore            然后跟据命令行提示操作生成keystore文件  

                     testalias是证书别名  ,还有证书文件密码和位置都需要记住打包的时候必须要。

             (2)查看keystore文件

           输入命令:     keytool -list -v -keystore E:\test\android.keystore

注意:    jks文件和keystore文件都是指纹证书文件只是生成方式不同,jks文件时android stadio生成的,kestore文件是直接在命令行窗口生成,这里就不说android如何生成了。上面重要的是证书指纹部分。

6.将生成的SHA256填入如图标记部分。

自此华为所需信息都已经获取完成。

7.项目信息完成后,开通推送服务

点击“立即开通”

web推送代理打开 

小米开发者账号申请:

1.到小米开发这平台注册账号:需要小米账号,非小米账号就会没有权限

2.账号注册完成,就可去到推送运营平台。点击创建应用,创建自己的推送项目,注意报名要与unipush保持一致。

3.点击应用信息就可以拿到,推送需要的应用信息

二、unipush接入厂商:

1.在https://dev.dcloud.net.cn/app/index?type=0网址申请DCloud开发者账号

2.去开发者中心创建应用

3.应用创建完成,去到unipush页面,编辑应用信息,如果想单独打包android可以不选中ios,然后点击开通推送服务就开启了。

注意:这里的android包名要与后面的厂商应用保持一致,应用签名要与华为平台上的签名文件使用同一个(这个坑我爬了好几天)

4.配置厂商通道:点击厂商推送设置将各个厂商的应用信息填入对应项中,保存。

5.应用打包:

   (1)在hbuilderx上登陆DCloud账号,创建h5或者是uniapp项目

   (2)项目创建完成后,配置manifest.json文件添加推送服务,先配置基础服务,应用名称和Dcloud开发者平台上创建的名称一致,然后获取appid(如果没有appid,点击重新获取)

点击SDK配置开启推送服务

在模块权限配置中开启推送服务

3.选中该项目,点击发行,选择第一个  “原生App-云打包”

4.选择打包apk包,使用自有证书(这个证书的生成在上面华为账号申请时介绍过)填入证书别名,填入证书密码,填入证书路径,选择打正式包,然后点击打包,等待链接生成手机下载apk安装就完成了。

这里如果要多次调试可选择自定义基座打包,如何基座打包,之后的文章在进行介绍。

<think>好的,我现在需要解决用户关于UniPush 2.0离线消息推送的后端实现问题。用户询问了API文档和示例代码,我需要结合提供的三个引用来组织答案。 首先,查看引用[1],里面提到了使用plus.push.createMessage创建本地推送消息,并设置角标。但用户需要的是后端实现,所以这可能是指客户端配置,需要后端调用API。引用[2]提到勾选UniPush2.0,获取cid,创建云函数,这涉及到客户端获取cid并传给后端的过程。引用[3]是PHP的示例,使用个推透传,说明后端需要调用个推的RestAPI,并处理透传数据。 接下来,我应该分步骤说明后端实现的流程。首先,需要确保客户端正确集成UniPush SDK,获取cid并传给后端。然后,后端需要配置个推的API密钥等信息,构建请求参数,发送POST请求到个推的接口。这里需要结合引用[3]中的PHP示例,转换成通用的步骤,并提醒用户替换关键参数。 另外,要强调离线推送的注意事项,比如消息有效时间、厂商通道配置等,这些可能影响离线推送的成功率。同时,要确保用户勾选UniPush2.0并关闭离线推送测试,如引用[2]所述。最后,提供示例代码的结构,可能需要分语言说明,但用户主要需要PHP,所以重点放在PHP示例上,同时提到其他语言的文档链接。 需要验证步骤是否全面,比如客户端准备、服务端配置、API调用参数、透传格式等。确保引用正确,比如在提到cid和消息内容时引用[2]和[3]。可能还需要补充关于消息加密或签名的安全措施,但如果没有相关信息,可以建议参考官方文档。 现在组织答案结构:先概述步骤,然后详细说明每个步骤,包括代码示例和注意事项,最后相关问题。确保使用正确的LaTeX格式,比如变量用$cid$,独立公式不用可能这里用不到,但行内公式正确。检查引用标记是否正确添加,例如在获取cid和调用API的地方引用对应的引用源。</think>以下是通过后端实现UniPush 2.0离线消息推送的完整方案: ### 一、实现步骤 1. **客户端准备** - 在UniApp项目中勾选UniPush2.0模块,并关闭离线推送测试[^2] - 通过`plus.push.getClientInfo`获取设备唯一标识`cid`并回传至服务端 ```javascript // App.vue中获取cid const clientInfo = plus.push.getClientInfo() let cid = clientInfo.clientid // 设备唯一标识 ``` 2. **服务端配置** - 登录[个推开发者中心](https://dev.getui.com)获取配置参数: - `APPID`: 应用唯一标识 - `APPSECRET`: 应用密钥 - `MASTERSECRET`: 服务端鉴权密钥 3. **API调用流程** ```php // PHP示例(需安装HTTP扩展) $url = "https://restapi.getui.com/v2/$APPID/push/single/cid"; $headers = [ 'Content-Type: application/json', 'token: '.$token // 通过鉴权接口获取 ]; $data = [ 'request_id' => uniqid(), 'settings' => [ 'ttl' => 3600000 // 消息离线存储时间(毫秒) ], 'audience' => [ 'cid' => ['用户设备cid'] ], 'push_message' => [ 'notification' => [ 'title' => '新消息', 'body' => '您有未读消息', 'click_type' => 'payload' // 点击动作类型 ], 'transmission' => json_encode(['type' => 'order_update']) // 透传数据[^3] ] ]; ``` ### 二、关键参数说明 | 参数 | 类型 | 说明 | |------|------|------| | `ttl` | Integer | 消息离线保存时长(建议≥3600000ms) | | `transmission` | String | 透传数据(需JSON序列化且<4KB) | | `click_type` | String | 点击动作(startapp/payload/url) | ### 三、注意事项 1. 需配置**厂商通道**(华为/小米等)提升离线抵达率 2. 鉴权token有效期为24小时,需定时刷新 3. 透传数据建议包含业务标识字段,例如: ```json { "action": "message_notify", "msg_id": "123456" } ``` ### 四、官方文档参考 - [个推RestAPI V2文档](https://docs.getui.com/getui/server/rest_v2/overview/) - [UniPush集成指南](https://uniapp.dcloud.io/unipush-v2.html)
评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值