吃辣条的大妖怪
吃辣条的大妖怪
  • 发布:2019-02-27 11:05
  • 更新:2021-10-09 13:54
  • 阅读:45763

UNIAPP项目+个推成功实现推送功能(更新使用unipush)

分类:uni-app

首次使用uniapp实现app开发

使用个推sdk,实现app的消息推送;
找遍了文档,没找到方法,最终结合H5+的方式实现消息推送
带参数跳转指定页面。

2019-8-7 修改为unipush方式,仅需要将uniapp内的配置 从个推修改为unipush 即可,连代码都不用更改。如果需要配置厂商的就配置下。

参考 uniapp 提供官方文档
uni.getProvider(OBJECT)
获取服务供应商;
uni.subscribePush(OBJECT)
开启推送;
上述可获取到推送的基本信息,token ,appid,appkey ,CID等信息。

uni.onPush(OBJECT)
监听透传数据。
多种方式实验过后,仍是无法监听;(个人能力问题,还是不知道哪里实现监听T T)

最终解决方法:
为在APP.vue中使用;

复制代码
    //#ifdef APP-PLUS  

          /* 5+  push 消息推送 ps:使用:H5+的方式监听,实现推送*/  
        plus.push.addEventListener("click", function(msg) {  
                plus.ui.alert("click:"+JSON.stringify(msg));  
                plus.ui.alert(msg.payload);  
                // plus.ui.alert(JSON.stringify(msg));  

            }, false);  
                // 监听在线消息事件    
            plus.push.addEventListener("receive", function(msg) {  
                // plus.ui.alert(2);  
                plus.ui.alert("recevice:"+JSON.stringify(msg))  
       }, false);  

   //#endif  

在app.vue的 onLaunch 生命周期内,实现跳转也出现过问题。
应该是页面还没加载,加上定时后,可实现功能;

setTimeout(function(){
uni.navigateTo({
url: '../fire/detail?detailID='+msgObj.id
})
},1000);

page.json ;有配置

强制打开 app后在 自动首页打开,所有跳转链接是路径不是在app.vue的写法;
需要从main.vue下找到 需要跳转的路径 。所以的我是 “../xxx/xxx”

解决推送问题的同时也顺便解决了之前一直想要监听事件的问题;
uniapp下的监听都在app.vue下;
其他页面无法监听;

个人方式实现功能,希望可以有帮助,小伙伴们有更好的可以多多交流。

在个推之后,dcloud推了unipush,比较方便,这篇一直没更新,疫情在家,我就随便补充下 - -

推送选择uniPush


登陆dcloud官网找到开发者后台,成功申请后,找到需要到app
开通unipush,同个推流程一样。搞好后,之前的也不需要改,直接可用。

如果需要离线推送,如下图配置,需要开通不同厂商的开发者账号和权限配置。我自己的项目只添加了华为和小米。


-看到需要清角标的,我就直接贴代码的了;
clearBage() {
//清空角标
plus.runtime.setBadgeNumber(0);
//导入个推原生类
var GeTuiSdk = plus.ios.importClass('GeTuiSdk');
GeTuiSdk.setBadge(0);
uni.showToast({
title: "应用角标已清除",
icon: "none"

复制代码            })  

        },  
21 关注 分享
SimpleJalon 5***@qq.com 2来2去 嵪代码 9***@qq.com 2***@qq.com 海中飞鱼 4***@QQ.com 草灯 w***@163.com o***@foxmail.com 1***@qq.com 2***@qq.com d***@qq.com 4***@qq.com 香蕉你咋不拿呢 h***@163.com 2***@qq.com 刘先生啊 1***@qq.com hws007

要回复文章请先登录注册

1***@qq.com

1***@qq.com

你好,请问一下安卓离线推送要怎样监听到打开应用内的页面吗 click和receive监听不到,我测试的是华为的离线推送,苹果是可以监听到,华为就不行了
2020-03-05 15:58
1***@qq.com

1***@qq.com

回复 2来2去 :
index.vue是那个界面
2020-02-26 11:39
1***@qq.com

1***@qq.com

你好,可以问你一个问题吗 我uni.navigateTo里面跳转里url放的是 ‘pages/main/main’ 但是跳转的路径是`/pages/login/pages/main/main` 前面多了所在界面的路径 请问有遇到过这个问题吗
2020-02-26 11:39
吃辣条的大妖怪

吃辣条的大妖怪 (作者)

回复 1***@qq.com :
这个要看你自己文件怎么写的额,按照pages下的跳转,不写跳转是直接到首页。按照首页的目录位置。
2020-02-21 13:42
1***@qq.com

1***@qq.com

你好,请教一下,那个navigateTo 跳转的路径是怎么写的,我是用的uniapp开发,按正常路径总是不起作用
2020-02-16 11:59
iMars

iMars

我卡死了在跳转页面那里,点击事件能回调函数,但跳转到指定页面就卡死了,没任何反应,不知出了什么问题。在很多地方问了都没回应。
2019-09-20 11:20
1***@qq.com

1***@qq.com

回复 吃辣条的大妖怪 :
作者您好。我复制的你的方法为什么什么都没有打印呢?是我用的不对吗?真机调试什么都没有。打包之后又看不到,这个咋办呢?我是想要获取cid
2019-08-26 16:19
1***@qq.com

1***@qq.com

支持离线打包吗?
2019-08-20 15:34
jack2018

jack2018

服务器后台(asp.net)如何消息推送?
2019-08-07 17:46
1***@qq.com

1***@qq.com

回复 吃辣条的大妖怪 :
不是,是这样的,只有ios上面才会出现clientid获取不到的问题,第一次启动是可以获取到的,关掉应用再次进来就获取不到了,但是等上几分钟后再次进来的时候还是能获取到的。应该是属于一个bug
2019-07-02 15:48