uni push2.0实现消息推送(在线&离线)

uni push2.0配置

  1. 需要开通uniCloud服务(推荐阿里云)

  2. 生成证书:安卓(https://ask.dcloud.net.cn/article/68),ios(https://docs.getui.com/getui/mobile/ios/apns/

  3. 进入开发者中心进行配置uni push2.0

  4. 没有配置应用或者没有配置应用的各平台信息,需要先新增一个应用然后在该应用中新增平台信息
    在这里插入图片描述

  5. 找到uniPush->2.0->应用信息,配置以下信息
    在这里插入图片描述

  6. 安卓/ios平台需要配置以下信息(证书生成的信息)
    在这里插入图片描述
    在这里插入图片描述

  7. 厂商离线推送设置 —— https://docs.getui.com/getui/mobile/vendor/vendor_open,配置常见问题 —— https://ask.dcloud.net.cn/article/40291

  8. 更多参考官方文档(https://uniapp.dcloud.net.cn/unipush-v2.html

云函数

  1. 新建项目时勾选启用uniCloud,已有项目则右击项目目录->创建uniCloud云开发环境->阿里云
  2. 在生成的uniCloud文件夹右击选择关联云服务空间
  3. 在uniCloud\cloudfunctions文件夹中新建云函数,勾选uni-cloud-push扩展库
// 简单的使用示例
'use strict';
const uniPush = uniCloud.getPushManager({appId:"__UNI__XXXXXX"}) //注意这里需要传入你的应用appId
exports.main = async (event, context) => {
	const data = JSON.parse(event.body)
	return await uniPush.sendMessage({
		"getui_alias": data.alias,  // 使用别名推送
		"title": data.title,
		"content": data.content,
		// "force_notification": true,  // 服务端推送
		"request_id": event.requestId, // 请求唯一标识号
		"payload": data.payload,
		"badge": 0 // 不设置应用角标
	})
}
  1. 右击新建的云函数点击上传部署
  2. 进入uniCloud控制台,找到上传的云函数点击详情
    在这里插入图片描述
  3. 设置URL的PATH部分
    在这里插入图片描述
  4. 配置完后的完整URL就可用来请求调用
  5. App.vue中监听收到服务端消息及通知栏点击消息事件处理
onLaunch() {
	// #ifdef APP-PLUS
	let pushMessageCallback = (res) => {
		const { data } = res
		if (res.type === "receive") {
			// 创建通知栏消息
			plus.push.createMessage(data.content, data.payload, {
				title: data.title,
				sound: "system",
				cover: false
			})
		} else {
			const msgType = data.payload.msgType
			const id = data.payload.id
			const orderId = data.payload.orderId
			const parentId = data.payload.parentId
			if (msgType === 0) {
				uni.navigateTo({
					url: `/pages/workbenches/listPage/order-detail/order-detail?parentId=${parentId}&orderId=${orderId}`
				})
			} else if (msgType === 1) {
				uni.navigateTo({
					url:  `/pages/workbenches/listPage/delivery-detail/delivery-detail?parentId=${parentId}&orderId=${orderId}&id=${id}`
				})
			}
		}
	}
	uni.onPushMessage(pushMessageCallback)
	// #endif
	// #ifdef APP-ANDROID
	// 安卓自定义通知渠道(需要安装DCloud-PushSound原生插件)
	const plugin = uni.requireNativePlugin("DCloud-PushSound");
	if (plugin) {
		plugin.setCustomPushChannel({
			soundName: "",
			channelId: "user_remind_channel",
			channelDesc: "接单/签收提醒",
			enableLights: true,
			enableVibration: true,
			importance: 3,
			lockscreenVisibility: 0,
		});
	}
	// plugin.getAllChannels((p) => {
	// 	console.log("channels :" + JSON.stringify(p));//返回数组
	// })
	// #endif
}

更多参考官方文档

### UniPush 2.0 消息推送服务集成概述 UniPush 是 DCloud 提供的一套跨平台消息推送解决方案,支持 iOS 和 Android 平台的应用程序开发。通过集成 UniPush 的 SDK,开发者可以实现向用户的设备发送通知、消息等功能[^1]。 以下是关于如何集成 UniPush 2.0 推送服务的具体说明: --- ### 一、环境准备 在开始集成之前,请确认满足以下条件: - 已注册并登录到 DCloud 官方网站账户。 - 创建应用,并获取 `AppId` 和其他必要的配置参数。 - 开发环境中已安装最新版本的 HBuilderX 或者对应的 IDE 支持工具。 具体操作可参考官方文档中的快速接入指南部分。 --- ### 二、SDK 集成流程 #### 1. 下载并引入 SDK 文件 访问官网提供的下载链接或者直接从 GitHub 获取最新的 UniPush SDK 版本文件。将其解压后放入项目目录下的指定位置。 对于不同平台的支持情况如下表所示: | **平台** | **所需模块名称** | |----------|------------------| | Android | uni-push-android.jar | | iOS | libunipush.a | 注意:如果目标应用程序涉及多端兼容,则需分别处理两者的依赖关系。 #### 2. 修改配置文件 编辑项目的 manifest.json 文件或其他初始化脚本,在其中声明启用远程推送功能以及绑定 AppID 参数。 示例代码片段(适用于 Vue/Nvue 类型页面结构): ```javascript // 在 main.js 中完成基础设置 plus.push.addEventListener('receive', function (msg) { console.log("Received message:", msg); }); ``` 同时还需要定义权限请求列表,确保能够正常接收来自服务器的通知数据流传输许可。 #### 3. 初始化客户端实例 调用 API 方法启动本地监听器并与云端建立连接通道。此过程通常发生在主 Activity 加载完成后立即执行。 Android 示例代码: ```java import com.alibaba.sdk.android.push.PushService; ... public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); PushService.startWork(this, "your_app_id"); } } ``` iOS 对应方式则采用 Swift/Objective-C 实现相似逻辑。 --- ### 三、测试验证阶段 完成上述步骤之后即可进入调试环节。建议先利用沙盒模式下模拟真实场景来检验整个链路是否通畅无误。一旦发现问题可以通过日志分析定位原因所在。 更多高级特性如自定义样式模板定制化展示效果等内容同样值得深入探索学习。 --- ### 四、注意事项 - 如果遇到任何异常状况务必仔细查阅错误提示信息以便及时调整修复方案。 - 不同操作系统间可能存在细微差异因此实际部署过程中要充分考虑到这些因素的影响范围。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值