uniapp之unipush安卓app信息推送 您所在的位置:网站首页 安卓如何关闭推送消息 uniapp之unipush安卓app信息推送

uniapp之unipush安卓app信息推送

2023-09-06 20:03| 来源: 网络整理| 查看: 265

第一步,uniapp 官网查找推送

uni-app官网

介绍业务、开通流程,请务必仔细阅读 UniPush使用指南 - DCloud问答

第二步,unipush相关链接

开通的unipush是封装了个推SDK,但Dcloud平台没有技术联系方式,他们技术支持是付费的,所以我们个推这边也会关注下unipush用户的集成情况,给予技术上的协助。

这里是完整的技术文档,请仔细研读:

UniPush使用指南 UniPush使用指南 - DCloud问答

Unipush常见问题 Unipush常见问题 - DCloud问答

Unipush咨询入口:DCloud问答

服务端api接口推送调用文档

推送API-个推文档中心

可联系管理员进微信技术群

重点来了~~~

第三步,前端记录

unipush 信息推送,需要前端获取到app的cid,后端通过cid推送给对应的app,

开通UniPush推送服务

点此查看如何开通UniPush推送服务

Android平台支持厂商推送通道

注意:开通UniPush后,需在后台配置“厂商推送设置”,配置好厂商参数后请一定要提交云打包,并且使用“自有证书”打签名包;将云打包后的安装包安装到手机上,再获取cid 进行离线厂商推送测试,不可使用基座方式获取的cid进行离线厂商推送测试。

获取手机厂商推送设置信息请参考:厂商推送应用创建配置流程

应用桌面图标的角标

如何获取CID和任务ID 在应用安装后第一次运行时应该调用5+ API的plus.push.getClientInfo方法获取客户端标识,如果获取的cid为空,说明客户端向推送服务器注册还未完成,可以使用setTimeout延时重试。 document.addEventListener('plusready', function(){ // 页面加载时触发 var pinf = plus.push.getClientInfo(); var cid = pinf.clientid;//客户端标识 }, false ); 服务端推送的,请求成功后会返回result,result中【taskid】的值就是任务ID;平台上推送的,在【推送记录】中点击详情,页面上显示的【task ID】的值。 监听点击事件 // 点击推送信息 离线 plus.push.addEventListener('click', res => { //模板消息 console.log('push--->click'); }); // 接收推送信息 在线 plus.push.addEventListener('receive', res => { console.log('push--->receive'); }); uniapp 安卓demo代码

app.vue

app.vue //引入推送js import plusListener from '@/common/unipush-listener.js'; export default { extends: base, onLaunch: function() { // 信息推送 //开启推送 //#ifdef APP-PLUS plusListener.getClientInfoLoop();// 循环获取cid plus.runtime.setBadgeNumber(0); // 角标清空 plusListener.pushListener(); // 监听通知栏信息 // #endif } }

unipush-listener.js 

unipush-listener.js  /** * 监听push 消息 以及后台数据恢复 */ import store from '@/store' let timer = false; var numloop = 0; export default { // 开启监听推送 pushListener() { console.log('pushListener=================pushListener'); // 点击推送信息 离线 plus.push.addEventListener('click', res => { //模板消息 console.log('push--->click'); this.addEventListenerPushMessage(res, 'click'); }); // 接收推送信息 在线 plus.push.addEventListener('receive', res => { console.log('push--->receive'); this.addEventListenerPushMessage(res, 'receive'); }); }, // 点击click方法,获取push数据,判断是否登录,进行跳转 addEventListenerPushMessage(push, type) { console.log("push, type", push, type); clearTimeout(timer); timer = setTimeout(function() { var row = push.payload; console.log(JSON.stringify(row), "JSON.stringify(row)"); if (store.state.user.token) { if (row.id) { uni.navigateTo({ url: '/packagehome/pages/task/TodoList?row=' + JSON.stringify(row) }) } else { uni.reLaunch({ url: '../index/index', }); } } else { uni.reLaunch({ url: '/pages/login/login' }); } }, 1500) }, // 循环获取clientid信息,直到获取到为止 getClientInfoLoop() { plus.push.getClientInfoAsync(function(info) { console.log("info", JSON.stringify(info)); console.log(info); console.log(info.clientid); console.log(!info || !info.clientid, (info && info.clientid ? true : false)); // 如果info不存在,或者info存在,cid不存在则再次获取cid if (!info || !info.clientid) { console.log("cid为空========================================="); let infoTimer = false; infoTimer = setInterval(function() { console.log('setInterval======'); console.log('numloop======', numloop++); // 同步获取cid var pinf = plus.push.getClientInfo(); var cid = pinf.clientid; //客户端标识 console.log(pinf, cid, cid ? true : false); if (cid) { clearInterval(infoTimer); //清定时器 uni.setStorageSync('cid', cid); // 储存cid console.log(uni.getStorageSync('cid'), '储存的cid======'); // this.passCid(cid); // 向后台传送cid // 是否有cid,登录的时候上传后台,否则首页上传 var havecid = uni.getStorageSync('havecid'); console.log('havecid', havecid, cid); console.log(!havecid && cid) if (!havecid && cid) { this.$http.get('/sys/updateCid?clientId=' + cid).then(({ data }) => { console.log(cid, 'passCid,向后台传cid========2data', data); if (data.success) { uni.setStorageSync('havecid', true); } }) } } }, 100); } else if (info && info.clientid) { // 储存cid var cid = info.clientid; uni.setStorageSync('cid', cid); console.log(uni.getStorageSync('cid'), '本地储存cid======'); // this.passCid(cid); // 向后台传送cid // 是否有cid,登录的时候上传后台,否则首页上传 var havecid = uni.getStorageSync('havecid'); console.log('havecid', havecid, cid); console.log(!havecid && cid) if (!havecid && cid) { this.$http.get('/sys/updateCid?clientId=' + cid).then(({ data }) => { console.log(cid, 'passCid,向后台传cid========2data', data); if (data.success) { uni.setStorageSync('havecid', true); } }) } } }, function(e) { console.log('Failed', JSON.stringify(e)); // 同步获取cid var pinf = plus.push.getClientInfo(); var cid = pinf.clientid; //客户端标识 if (cid) { // 储存cid uni.setStorageSync('cid', cid); console.log(uni.getStorageSync('cid'), '======'); this.passCid(cid); // 向后台传送cid } }) }, // 向后台传送cid passCid(cid) { // 是否有cid,登录的时候上传后台,否则首页上传 var havecid = uni.getStorageSync('havecid'); console.log('havecid', havecid, cid, !havecid && cid); if (!havecid && cid) { this.$http.get('/sys/updateCid?clientId=' + cid).then(({ data }) => { console.log(cid, 'passCid,向后台传cid========2data', data); if (data.success) { uni.setStorageSync('havecid', true); } }) } }, // // receive,接收到推送信息,前端创建推送信息 // addEventListenerReceive(push, type) { // console.log("push, type", push, type); // clearTimeout(timer); // timer = setTimeout(function() { // plus.push.createMessage(push.content,push.payload,push.options); // }, 1500) // }, } 以下是Java-sdk封装Rest-V2厂商推送示例: { "request_id":"请填写10到32位的id", "audience": { "cid": [ "请填写clientid" ] }, "settings":{ "ttl":3600000, "strategy":{ "default":1 } }, "push_message":{ "transmission":" {title:"标题",content:"内容",payload:"自定义数据"}" }, "push_channel":{ "android":{ "ups":{ "notification":{ "title":"安卓离线展示的标题", "body":"安卓离线展示的标题", "click_type":"intent", "intent":"intent:#Intent;launchFlags=0x04000000;action=android.intent.action.oppopush;component=io.dcloud.HBuilder/io.dcloud.PandoraEntry;S.UP-OL-SU=true;S.title=测试标题;S.content=测试内容;S.payload=test;end" } } }, "ios":{ "type":"notify", "payload":"自定义消息", "aps":{ "alert":{ "title":"苹果离线展示的标题", "body":"苹果离线展示的内容" }, "content-available":0 }, "auto_badge":"+1" } } 完整服务端厂商推送教程参考: https://docs.getui.com/getui/server/rest_v2/common_args/ 遇到的坑



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有