基于uniapp实现的移动端消息弹窗提醒

使用的技术是uniapp里面的unipush

首先需要去我的应用里面申请开通unipush的权限,有unipush2.0 和3.0的,这里面用的是2.0

主要代码为前端App.vue文件中的

首先需要获取到当前用户的唯一Cid 然后用来确定消息发到哪个用户中, 这个会在用户安装应用的时候,给一个Cid ,并且每次重复下载安装后,Cid会重置

setTimeout(() => {
            
                plus.push.getClientInfoAsync((info) => {
                    let cid = info["clientid"];
                    // console.log(cid);
                    uni.setStorageSync('cid', cid)
                });
}, 1000)

然后需要添加消息监听的事件,主要用的是透传消息,后端.NET的代码需要用到个推官网里面的SDK,来实现发送消息到前端的plus.push.addEventListener("receive" )这个监听方法中去,这边会监听到,然后创建消息弹窗

plus.push.addEventListener("receive",(msg)=>{                
                if (msg.payload != "LocalMsg") 
                {
                    //声音
                    let main = plus.android.runtimeMainActivity();
                    let RingtoneManager = plus.android.importClass("android.media.RingtoneManager");
                    let uri = RingtoneManager.getActualDefaultRingtoneUri(main, RingtoneManager.TYPE_NOTIFICATION);  
                    let MediaPlayer = plus.android.importClass("android.media.MediaPlayer");  
                    let player = MediaPlayer.create(main, uri);  
                    player.setLooping(false);  
                    player.prepare();  
                    player.start();
                                    
                    var options = {cover:false,sound:'system',title:msg.title};
                    // //通知栏参数
                    //                     // let options = {
                    //                     //     "cover": false,
                    //                     //     "sound": 'system',
                    //                     //     "title":msg.title
                    //                     // };                
            
                    plus.push.createMessage(msg.content, msg, options );
                    
                     
                }
                                        //如果是透传消息的话,走这个if
                    if(msg.type=='receive')
                    {
                        
            
                          //声音
                          let main = plus.android.runtimeMainActivity();
                          let RingtoneManager = plus.android.importClass("android.media.RingtoneManager");
                          let uri = RingtoneManager.getActualDefaultRingtoneUri(main, RingtoneManager.TYPE_NOTIFICATION);  
                          let MediaPlayer = plus.android.importClass("android.media.MediaPlayer");  
                          let player = MediaPlayer.create(main, uri);  
                          player.setLooping(false);  
                          player.prepare();  
                          player.start();
            
                         var options = {cover:false,sound:'system',title:msg.title};
                        // //通知栏参数
                        //                     // let options = {
                        //                     //     "cover": false,
                        //                     //     "sound": 'system',
                        //                     //     "title":msg.title
                        //                     // };
                                       
                        plus.push.createMessage(msg.content, msg, options ); 
                     }  
            
            
            
                     // if (msg.payload != "LocalMsg" && plus.os.name == "iOS") {
                     //     plus.push.createMessage(msg.payload.content, "LocalMsg", null)
                     // }
            
            
            },false)    

最后添加消息点击的事件

plus.push.addEventListener("click", (msg) => {
            
            
            
                clearTimeout(timer);
                timer = setTimeout(() => {
            
                    if (msg.payload != "LocalMsg" && temp.isbackground == false) {
                        var dataurl = JSON.parse(msg.payload.url);
                        uni.navigateTo({
                            url: '../' + dataurl.url
                        });
                    }
            
                    // if(msg.payload){
                    //     uni.navigateTo({
                    //         url:msg.payload
                    //     })
                    // }
                }, 1500)
            }, false)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值