f***@163.com
f***@163.com
  • 发布:2020-11-04 09:14
  • 更新:2020-11-04 09:43
  • 阅读:707

点击通知只能打开APP无法跳转页面怎么回事?

分类:uni-app

点击通知只能打开APP无法跳转页面怎么回事?

2020-11-04 09:14 负责人:无 分享
已邀请:
chenli

chenli

设置延时执行跳转试试

突然好想你

突然好想你

一样的,点击没有进行跳转;好像连弹窗都没弹出来

  • f***@163.com (作者)

    知道怎么处理吗?

    2020-11-04 10:07

  • 突然好想你

    回复 f***@163.com: //判断客户端

    var clent = uni.getSystemInfoSync().platform

    plus.push.setAutoNotification(true)

    const _self = this;

    //收到透传消息

    //只有APP在线时,才会触发receive事件,透传消息不会触发系统消息,需要创建本地消息

    plus.push.addEventListener("receive", function(msg) {

    var clent = uni.getSystemInfoSync().platform

    console.log("(receive):" + JSON.stringify(msg));

    uni.showToast({

    title: JSON.stringify(msg),

    icon: "none"

    });

    if (clent == 'ios') { //如果是IOS

    var payload = msg.payload;

    //【APP离线】收到消息,但没有提醒(发生在一次收到多个离线消息时,只有一个有提醒,但其他的没有提醒)

    //【APP在线】收到消息,不会触发系统消息,需要创建本地消息,但不能重复创建。必须加msg.type验证去除死循环

    if (msg.aps == null && msg.type == "receive") {

    var messageTitle = payload.messageTitle;

    var messageContent = payload.messageContent;

    //创建本地消息,发送的本地消息也会被receive方法接收到,但没有type属性,且aps是null

    plus.push.createMessage(messageContent, JSON.stringify(payload), {

    title: messageTitle

    });

    }

    // else{

    // var payload = JSON.parse(msg.payload);

    // plus.push.createMessage(payload.messageContent, JSON.stringify(payload.payload), {title: payload.messageTitle});

    // }

    }

    if (clent == 'android') {

    //如果是Android,当APP在线时,收到透传消息不会进入系统消息,需要发送本地提醒。

    var payload = JSON.parse(msg.content);

    var messageTitle = payload.messageTitle;

    var messageContent = payload.messageContent;

    plus.push.createMessage(messageContent, msg.payload, {

    title: messageTitle

    });

    plus.runtime.setBadgeNumber(1)

    }

    }, false);


            //消息点击事件      
    //【APP在线】,收到透传消息通过,不会提醒至通知栏目,需要发送本地消息,再进行点击触发的点击事件。
    //【APP离线】,收到离线透传消息,必须通过Java后台的Intent字符串携带payload,且符合格式才能触发click事件,格式不符合不会触发
    plus.push.addEventListener("click", function(msg) {
    var clent = uni.getSystemInfoSync().platform
    console.log("(click):" + JSON.stringify(msg));
    uni.showToast({
    title: JSON.stringify(msg),
    icon: "none"
    });
    if (clent == 'ios') { //如果是IOS
    var payload;
    if (msg.type == "click") { //APP离线点击包含click属性,这时payload是JSON对象
    payload = msg.payload;
    } else { //APP在线,收到消息不会包含type属性,这时的payload是JSON字符串,需要转为JSON对象
    payload = JSON.parse(msg.payload);
    }
    if (payload != null || payload != undefined) {
    console.log("payload:" + payload)
    //_self.callback(payload+"");
    _self.setUniPush_state("1")
    _self.setUniPush_url(payload.payload)
    uni.reLaunch({
    url: '/pages/index/index'
    })
    }
    }
    if (clent == 'android') { //如果是Android,收到playload均是是JSON字符串,需要转为JSON对象
    var payload = msg.payload;
    console.log("msg.payload:" + msg.payload)
    if (payload != null || payload != undefined) {
    console.log("payload:" + payload)
    // _self.callback(payload+"");
    _self.setUniPush_state("1")
    _self.setUniPush_url(payload)
    uni.reLaunch({
    url: '/pages/social/social'
    })
    }
    }
    }, false);

    2020-11-04 10:12

  • 突然好想你

    回复 f***@163.com: 我看到的一篇文章是这样写的,忘记是官方还是其他开发者了,反正评论数很多,但是感觉跟你这种写法没区别

    2020-11-04 10:13

  • f***@163.com (作者)

    回复 突然好想你: 好的,谢谢

    2020-11-04 10:19

该问题目前已经被锁定, 无法添加新回复