当前位置: 首页 > news >正文

uniapp消息推送

基于uniPush2.0

首先需要在DCloud开发者后台开通服务空间

点击查看官方内容
在这里插入图片描述
填写相关信息

然后回到HburilderX里,右击项目《创建uniCloud云开发环境》,右击新建的uniCloud文件,选择《关联云服务空间或项目》,再uniCloud内的“cloudfunctions”文件右击《新建云函数》,“点击下面第二个箭头添加一键推送模块”

在这里插入图片描述

打开新建的云函数下的 index,添加下面代码

// 简单的使用示例
'use strict';
const uniPush = uniCloud.getPushManager({appId: "__UNI__4D91404"
}) //注意这里需要传入你的应用appId,用于指定接收消息的客户端
exports.main = async (event, context) => {console.log('请求体', event);try {let res = await uniPush.sendMessage({"push_clientid": JSON.parse(event.body).push_clientid, //填写上一步在uni-app客户端获取到的客户端推送标识push_clientid"title": JSON.parse(event.body).title,"content": JSON.parse(event.body).content,"payload": JSON.parse(event.body).payload,"force_notification": true,"channel": {"XM": "115318", //"HW": "NORMAL","OP": "115318","VV": 1},"options": {"OP": {"/channel_id": "", //打开OPPO开发者平台有推送id"/off_line_ttl": 86400 // 离线消息的存活时间(time_to_live) (单位:秒), 【最长10天】},"XM": {"/extra.channel_id": "" , //打开小米开发者平台有推送id},"HW": {"/message/android/notification/importance": "NORMAL"},"VV": {"/classification": 1, //0代表运营消息,1代表系统消息"/notifyType": 4 // 通知类型 1:无,2:响铃,3:振动,4:响铃和振动 注意:只对Android 8.0及以下系统有效}}})return {"data": {data: res.data,res: event.body},"errCode": res.errCode,"errMsg": '' + res.errMsg}} catch (e) {return {"data": {data: res.data,res: event.body},"errCode": 500,"errMsg": '传的数据不对' + e}}};

右击“cloudfunctions”,选择上传所有云函数在这里插入图片描述

配置完了,下面是uniapp里

点击查看官方内容

在首页获取推送cid传给后端

const plugin = uni.requireNativePlugin('DCloud-PushSound');
import push from '@/js_sdk/dc-push/push.js';
if (!push.isNotOn()) {uni.showModal({title: '提示',content: '未确保您即时收到消息,请打开APP通知权限',showCancel: true,success: function(res) {if (res.confirm) {if ('iOS' == plus.os.name) {var UIApplication = plus.ios.import('UIApplication');var NSURL = plus.ios.import('NSURL');var setting = NSURL.URLWithString('app-settings:');var application = UIApplication.sharedApplication();application.openURL(setting);plus.ios.deleteObject(setting);plus.ios.deleteObject(application);} else {var main = plus.android.runtimeMainActivity();var pkName = main.getPackageName();var Intent = plus.android.importClass('android.content.Intent');var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS'); //可设置表中所有Action字段intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);main.startActivity(intent);}}}});
}else{uni.getPushClientId({success: (ret) => {console.log(ret);upClientid({pushClientid: ret.cid}).then((res) => {uni.setStorageSync('tuisongCheck',true)// console.log('更新推送id', ret.cid, res);});},fail(err) {console.log(err);}
});
}

在APP.vue里获取推送内容

uni.onPushMessage((res) => {console.log('监听到推送消息1', res);if(res.data.payload.includes('\\')){res.data.payload = res.data.payload.replace(new RegExp(/\\/,'g'),'')}let datas = JSON.parse(res.data.payload)console.log('监听到推送消息2', datas);
})

打自定义包测试

http://www.lqws.cn/news/549037.html

相关文章:

  • Springboot中常用的注解(分层整理)
  • Redis主从复制原理
  • CI/CD的常规设置及核心原理
  • 【大数据】大数据产品基础篇
  • OpenCV图像添加水印
  • Java底层原理:深入理解JVM类加载机制与反射机制
  • nginx:配置反向代理后不生效
  • 智能实验室革命:Deepoc大模型驱动全自动化科研新生态
  • could not import google.golang.org/protobuf/proto
  • 前沿融合:机器学习如何重塑智能水泥基复合材料研发范式
  • 学习设计模式《十五》——模板方法模式
  • 多张图片生成PDF每张图片生成pdf的一页
  • Windows Server 2019 查询远程登录源 IP 地址(含 RDP 和网络登录)
  • 论云原生架构及应用
  • AcWing--数据结构(二)
  • clion配置旧的C项目为CMake项目工程
  • 生成树基础实验
  • 【C++】atoi和std::stoi
  • 本年度TOP5服装收银系统对比推荐
  • HTTPS hostname wrong: should be <xxx>错误解决
  • .小故事.
  • 基于DeepSeek搭建Dify智能助手国产化架构运行arm64
  • 【LeetCode】滑动窗口相关算法题
  • leetcode.2014 重复k次的最长子序列
  • Deformable Transformer 详解
  • 本地缓存Caffeine详解(含与Spring Cache集成)
  • Java 工程智能化升级:飞算科技重构软件开发的技术范式
  • 电子电气架构 --- 涵盖“诊断与 ECU 平台”领域特有项目要求(上)
  • go写前端打包的自动化工具
  • 图像分割模型中的空间信息、上下文信息、空间路径、上下文路径到底是什么?有什么作用?