jy_yd
jy_yd
  • 发布:2024-12-14 10:24
  • 更新:2024-12-20 13:55
  • 阅读:313

【报Bug】unipush通知消息payload获取不到自定义参数

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10专业版

HBuilderX类型: 正式

HBuilderX版本号: 4.36

手机系统: Android

手机系统版本号: Android 13

手机厂商: 小米

手机机型: 小米10S

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
// 监听个推消息事件  
        uni.onPushMessage(function (message) {  
          if(message.type == 'click'){    
                          // 如果需要跳转app内指定页面,则自己实现下方的跳转代码。    
                          console.log("接收到的消息内容",message);    
                        console.log("接收到的消息内容",message.payload);    
          }    
          // 监听在线推送消息,若云函数设置了 "force_notification":true,则不会触发此 receive。    
          if(message.type == 'receive'){    
               console.log("接收到的消息内容",message);    
          }    
        });  

操作步骤:
服务端请求云函数URL化的链接 (php)  

$params = [
'cids'=>$push_clientid,
'force_notification'=>true,
'title'=>'测试推送',
'content'=>'你好1123456789',
'payload'=>[
"data1"=>"12",
],
'options'=>[
"XM"=> ["/extra.channel_id"=>"*****"],
],
];
本地打包自定义基座真机测试打印推送 参数

预期结果:

{
"type": "click",
"data": {
"UUID": "",
"title": "测试推送",
"appid": "
",
"content": "你好112345678",
"payload": {
"title": "测试推送",
"content": "你好112345678",
"data": {
"data1": "12",
}
}
}
}

实际结果:

{
"type": "click",
"data": {
"UUID": "",
"title": "测试推送",
"appid": "
",
"content": "你好112345678",
"payload": {
"title": "测试推送",
"content": "你好112345678",
"data": {
"username": "uni-app",
"text": "这是透传的数据data的里面的内容"
}
}
}
}

bug描述:

通过云函数url推送。客户端拿不到自定义payload参数,只有title和content

2024-12-14 10:24 负责人:无 分享
已邀请:
套马杆的套子

套马杆的套子 - 没有解决不了的问题,只有解决不完的问题

看你写的结果里,有payload啊
你的预期结果和实际结果是一样的,你再详细描述下这问题

  • jy_yd (作者)

    辛苦大佬解惑下,困在这好几天了...

    2024-12-16 14:38

  • 套马杆的套子

    回复 jy_yd: 你给云函数里的代码扔出来,然后给接受到的参数拿出来看看

    2024-12-16 15:16

  • jy_yd (作者)

    回复 套马杆的套子:

    public function __construct()

    {

    $this->url = 'https://fc-mp-ebba9d85-8e44-45ab-9fda-*****.next.bspapp.com';

    }


    public function push(array $userids){  
    $path = $this->url.'/push';

    $push_clientid = \app\admin\model\UserMobilePushData::whereIn('user_id',$userids)->column('cid');
    $params = [
    'cids'=>$push_clientid,

    // 'force_notification'=>true,

    'title'=>'测试推送',

    'content'=>'你好1123456789',

    'payload'=>[

    "data1"=>"12",

    ],

    'options'=>[

    "XM"=> ["/extra.channel_id"=>"****"],

    ],

    'click_type'=>'intent',

    ];

    $result = Http::sendRequest($path, $params, 'GET');

    dump($result);

    }

    2024-12-16 15:20

  • jy_yd (作者)

    {

    "type": "click",

    "data": {

    "UUID": "androidPushMsg113662791",

    "title": "测试推送",

    "appid": "UNIF61A574",

    "content": "你好1123456789",

    "payload": {

    "title": "测试推送",

    "content": "你好1123456789",

    "data": {

    "username": "uni-app",

    "text": "这是透传的数据data的里面的内容"

    }

    }

    }

    }

    2024-12-16 15:20

jy_yd

jy_yd (作者)

这是里面加的内容,是我加的格式不对吗

jy_yd

jy_yd (作者)

我是php请求的云函数的url。上面是请求的参数

jy_yd

jy_yd (作者)

本地真机打包自定义基座,可以收到在线消息,但是payload自定义参数打印出来没有

DCloud_Android_THB

DCloud_Android_THB

你用unicloud发送是否正常?

  • jy_yd (作者)

    能不能在跟进下呢

    2024-12-17 13:03

  • DCloud_Android_THB

    回复 jy_yd: 你先确定一下 unicloud是否正常,再用url话接口。

    2024-12-18 11:16

  • jy_yd (作者)

    回复 DCloud_Android_THB: unicloud后台发送透传消息是有自定义参数的

    2024-12-20 13:55

  • DCloud_Android_THB

    回复 jy_yd: 那你需要排查一下url化的问题了

    2024-12-20 15:04

  • jy_yd (作者)

    回复 DCloud_Android_THB: 能给个大概方向吗,url函数那看了好几遍,没看出啥问题

    2024-12-20 15:38

jy_yd

jy_yd (作者)

正常的,我请求 云函数url的链接,消息也是正常发送的

jy_yd

jy_yd (作者)

unicloud后台发送透传消息 能拿到自定义参数

要回复问题请先登录注册