极光推送设置通知下发策略third_party_channel选项

场景

项目要求在App内显示推送弹框消息,但极光接入了厂商通道,在App内无法做弹框,在App内弹框只能通过极光通道,这里就要通过通知下发策略来控制了。

官方文档

推送配置选择
https://docs.jiguang.cn/jpush/server/push/rest_api_v3_push/#options

配置用法

需要在option中配置third_party_channel参数,可选的参数

可选的配置参数如下:

"third_party_channel":{
    "xiaomi":{
              "distribution":"jpush",   // 表示纯小米用户通知栏消息下发逻辑,全部取值:jpush、ospush、secondary_push
              "channel_id":"*******",   //可选,2020/06 新增,由小米提供给到开发者,开发者通过此处透传;
                                        //如果传递了此字段,也传递了 notification-android-channel_id 字段,则针对小米通道下发时,以此字段为准;
                                        //如果此字段未传递,则以 notification-android-channel_id 字段为准。
                                        //当 distribution 为 jpush 时,该参数实际无效
              "large_icon":"jgmedia-2-14b23451-0001-41ce-89d9-987b465122da",  //可选,支持极光的media_id及小米厂商的大图标id,必须配合小米大文本或者是大图片使用,否则无效
              "small_icon_uri":"jgmedia-3-14b23451-0001-41ce-89d9-987b465122da",   //可选,支持极光的media_id及小米厂商的小图标id
              "small_icon_color":"#ABCDEF",   //可选,不填充默认灰色
              "big_text":"testbigtext", //可选,最多支持128个字符,配合小米style使用
              "style":1 //可选,默认为0普通模式,bigText=1,bigPicture=3
              "distribution_fcm":"fcm" // 可选,2020/09/15 新增,表示小米+fcm共存时下发逻辑,此处表示 fcm + 小米组合用户,消息走fcm下发
                                      // 全部取值:jpush、fcm、pns、secondary_fcm_push(优先极光然后fcm)、secondary_pns_push(优先极光然后小米)  
              "distribution_customize":"first_ospush"  // 可选,表示推送自定义消息优先走厂商通道下发,无效走极光通道下发
    },
    "huawei":{
              "distribution":"secondary_push",  // 表示纯华为用户通知栏消息下发逻辑,全部取值:jpush、ospush、secondary_push
              "distribution_fcm":"jpush", // 可选,2020/09/15 新增,表示华为+fcm共存时下发逻辑,此处表示 fcm+华为组合用户,消息走极光下发
                                         // 全部取值:jpush、fcm、pns、secondary_fcm_push(优先极光然后fcm)、secondary_pns_push(优先极光然后华为)
              "importance":"HIGH",        //可选,2020/09/21 新增,对应华为的 importance 字段,值为 String 类型,对应值分别是:“LOW”(一般消息)、“NORMAL”(重要消息)、“HIGH”(非常重要消息),不填充默认为"NORMAL"
              "large_icon":"jgmedia-2-14b23451-0001-41ce-89d9-987b465122da",  //可选,支持极光的media_id及网络https路径
              "small_icon_uri":"jgmedia-3-14b23451-0001-41ce-89d9-987b465122da",   //可选,支持极光的media_id及华为厂商本地路径
              "inbox": JSONObject, //可选,配合华为style使用
              "style":2, //可选,默认为0普通模式,bigText=1,Inbox=2
              "only_use_vendor_style":true //只使用自身通道设置的样式,不使用android里面设置大图标/小图标/大文本等样式
    },
    "meizu":{
              "distribution":"jpush",   // 表示纯魅族用户通知栏消息下发逻辑,全部取值:jpush、ospush、secondary_push
              "distribution_fcm":"pns" // 可选,2020/09/15 新增,表示魅族+fcm共存时下发逻辑,此处表示 fcm+魅族组合用户,消息走魅族下发
                                 // 全部取值:jpush、fcm、pns、secondary_fcm_push(优先极光然后fcm)、secondary_pns_push(优先极光然后魅族)
    },
    "fcm":{                         // 这个参数不支持 distribution_fcm 字段
              "distribution":"jpush"  // 表示纯 fcm 用户通知栏消息下发逻辑,全部取值:jpush、ospush、secondary_push
    },
    "oppo":{
              "distribution":"ospush", // 表示纯 oppo 用户通知栏消息下发逻辑,全部取值:jpush、ospush、secondary_push
              "channel_id":"*******", //可选,2020/06 新增,由开发者通自行去OPPO官方申请,申请通过,开发者通过过此处透传;
                                      //如果传递了此字段,也传递了 notification-android-channel_id 字段,则针对 OPPO 通道下发时,以此字段为准;
                                      //如果此字段未传递,则以 notification-android-channel_id 字段为准。
                                      //当 distribution 为 jpush 时,该参数实际无效;
                                      //当 distribution 为 secondary_push 时,限制策略走极光通道和走厂商通道逻辑一致:厂商不限制,极光也不限制;开发者如果恶意使用此字段,被转发到厂商的请求如果因配额限制导致推送无法下发问题,后台由开发者自行承担。
              "distribution_fcm":"secondary_fcm_push", // 可选,2020/09/15 新增,表示oppo+fcm共存时下发逻辑,此处表示 fcm+oppo 组合用户,消息优先走极光,然后走fcm下发
                                                // 全部取值:jpush、fcm、pns、secondary_fcm_push(优先极光然后fcm)、secondary_pns_push(优先极光然后oppo)
              "large_icon":"jgmedia-2-14b23451-0001-41ce-89d9-987b465122da",  //可选,支持极光的media_id及oppo厂商的大图标id
              "big_pic_path":"jgmedia-1-14b23451-0001-41ce-89d9-987b465122da", //可选,配合oppo的style使用
              "style":1 //可选,默认为0普通模式,bigText=1,bigPicture=3
    },
    "vivo":{
            "distribution":"jpush",   // 表示纯 vivo 用户通知栏消息下发逻辑,全部取值:jpush、ospush、secondary_push
            "classification": 0,     //可选,int 类型,2020/06 新增,和vivo官方字段含义一致 0 代表运营消息,1 代表系统消息,不填vivo官方默认为0
                                     //当 distribution 为 jpush 时,该参数实际无效;
                                     //当 distribution 为 secondary_push 时,限制策略走极光通道和走厂商通道逻辑一致:厂商不限制,极光也不限制;开发者如果恶意使用此字段,被转发到厂商的请求如果因配额限制导致推送无法下发问题,后台由开发者自行承担。
            "distribution_fcm":"secondary_pns_push", // 可选,2020/09/15 新增,表示vivo+fcm共存时下发逻辑,此处表示 fcm+vivo 组合用户,消息优先走极光,然后走vivo下发
                                                 // 全部取值:jpush、fcm、pns、secondary_fcm_push(优先极光然后fcm)、secondary_pns_push(优先极光然后vivo)
            "push_mode":0             //可选,2020/09/21 新增,对应 vivo 的 pushMode 字段,值为int 类型,值分别是:“0”表示正式推送;“1”表示测试推送,不填默认为0
    }
}

代码实现

代码总只需要配置distribution即可。

{
    "huawei": {
        "distribution_fcm": "secondary_pns_push"
    },
    "oppo": {
        "distribution_fcm": "secondary_pns_push"
    },
    "vivo": {
        "distribution_fcm": "secondary_pns_push"
    },
    "xiaomi": {
        "distribution_fcm": "secondary_pns_push"
    }
}

我们在极光配置了这四家厂商通道,不要配置多余的参数,只需要配置开通厂商通道的参数,不然推送会报错。

后台代码

    JsonObject object = new JsonObject();
        object.addProperty("distribution","secondary_push");
        Map<String, JsonObject> channelV2 = new HashMap<>();
        channelV2.put("huawei",object);
        channelV2.put("oppo",object);
        channelV2.put("vivo",object);
        channelV2.put("xiaomi",object);
        // 选项配置
        Options options = Options.newBuilder()
                .setApnsProduction(true)
                .setSendno(1)
                .setTimeToLive(86400)
                .setThirdPartyChannelV2(channelV2)
                .build();
# 工具   配置   推送  

评论

企鹅群:39438021

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×