uni push2.0配置
-
需要开通uniCloud服务(推荐阿里云)
-
生成证书:安卓(https://ask.dcloud.net.cn/article/68),ios(https://docs.getui.com/getui/mobile/ios/apns/)
-
进入开发者中心进行配置uni push2.0
-
没有配置应用或者没有配置应用的各平台信息,需要先新增一个应用然后在该应用中新增平台信息
-
找到uniPush->2.0->应用信息,配置以下信息
-
安卓平台需要配置以下信息(证书生成的信息)
-
厂商离线推送设置 —— https://docs.getui.com/getui/mobile/vendor/vendor_open,配置常见问题 —— https://ask.dcloud.net.cn/article/40291
-
更多参考官方文档(https://uniapp.dcloud.net.cn/unipush-v2.html)
云函数
- 新建项目时勾选启用uniCloud,已有项目则右击项目目录->创建uniCloud云开发环境->阿里云
- 在生成的uniCloud文件夹右击选择关联云服务空间
- 在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 // 不设置应用角标
})
}
- 右击新建的云函数点击上传部署
- 进入uniCloud控制台,找到上传的云函数点击详情
- 设置URL的PATH部分
- 配置完后的完整URL就可用来请求调用
- 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
}
更多参考官方文档
- https://uniapp.dcloud.net.cn/api/plugins/push.html
- https://uniapp.dcloud.net.cn/uniCloud/uni-cloud-push/api.html