个推华为推送、小米推送、苹果推送及角标

项目使用HbuilderX构建,使用个推进行消息推送。项目中踩到的坑进行记录分享,避免他人踩坑,匆忙记录,后续继续解决鸿蒙推送角标、苹果查看后角标减少。

个推配置文章链接:厂商应用开通指南-个推文档中心

个推华为角标:多厂商参数-个推文档中心

uni push :UniPush使用指南 - DCloud问答

1、华为推送:项目已经实现华为手机、平板的消息推送,突然收不到推送,只能一步一步找原因,最后确定是华为推送服务更新后,需要重新配置华为推送服务:

 参照个推信息填写回执名称、地址、证书,其他两项可不填写,提交即可,名称自定义,地址、证书如下:

  • 回调地址(杭州机房)

https://thirdrcp-hz.getui.com/hw
复制
  • HTTPS证书
-----BEGIN CERTIFICATE-----
MIIGrDCCBZSgAwIBAgIQB0D9NX2MGYX7U16uPL4ZfTANBgkqhkiG9w0BAQsFADBf
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMR4wHAYDVQQDExVHZW9UcnVzdCBDTiBSU0EgQ0EgRzEw
HhcNMjEwNjA4MDAwMDAwWhcNMjIwNjE1MjM1OTU5WjB0MQswCQYDVQQGEwJDTjES
MBAGA1UECAwJ5rWZ5rGf55yBMRIwEAYDVQQHDAnmna3lt57luIIxJzAlBgNVBAoM
Huavj+aXpeS6kuWKqOiCoeS7veaciemZkOWFrOWPuDEUMBIGA1UEAwwLKi5nZXR1
aS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1z29MoeLBlrXa
v+uIHn7MunAmD3t3nKlj1STyO+I+dmJlk/iz64Ussgwr2oyT7fY/LgzA2I7n2OQi
0sdA8TUTGEFvRV2ZEndjeWVVn2nb8mXPD/LfpwjlVXMu8b6hvwPbVwiDi2XLpA01
uqxd7luWGxqWbP9efbTUtARVG7wkttlrbKoZ5J4aNT/XHYlvUbBsuq/RUCmwwxzm
vvwzvlII18c5CJZj2rBLwIxdwP/pU3MHGyiQna0v8dRl9ME6G2QdzHPNfchhkTdB
M5/RVbfElAnMFYtmsWl3qyef4HpxoTEFdUpIjyHu+Q52UC4EHMUDVyltKMpmpWT7
itRDaJ/RAgMBAAGjggNNMIIDSTAfBgNVHSMEGDAWgBSRn14xFa4Qn61gwffBzKpI
NC8MJjAdBgNVHQ4EFgQUb74ZxaQHDCGOajJVBnbCTYPHVkkwIQYDVR0RBBowGIIL
Ki5nZXR1aS5jb22CCWdldHVpLmNvbTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYw
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMHUGA1UdHwRuMGwwNKAyoDCGLmh0dHA6Ly9j
cmwzLmRpZ2ljZXJ0LmNvbS9HZW9UcnVzdENOUlNBQ0FHMS5jcmwwNKAyoDCGLmh0
dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9HZW9UcnVzdENOUlNBQ0FHMS5jcmwwPgYD
VR0gBDcwNTAzBgZngQwBAgIwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdp
Y2VydC5jb20vQ1BTMG8GCCsGAQUFBwEBBGMwYTAhBggrBgEFBQcwAYYVaHR0cDov
L29jc3AuZGNvY3NwLmNuMDwGCCsGAQUFBzAChjBodHRwOi8vY3JsLmRpZ2ljZXJ0
LWNuLmNvbS9HZW9UcnVzdENOUlNBQ0FHMS5jcnQwDAYDVR0TAQH/BAIwADCCAX0G
CisGAQQB1nkCBAIEggFtBIIBaQFnAHUAKXm+8J45OSHwVnOfY6V35b5XfZxgCvj5
TV0mXCVdx4QAAAF56aZtUAAABAMARjBEAiACZX790zhQCiZmmN7zbWlmCxzAPT+p
Aof3L+Ew+g13SgIgM8fG372a/uyMK8QBGJoCbqYP6EA70ELD+yJy4WRUwDAAdQAi
RUUHWVUkVpY/oS/x922G4CMmY63AS39dxoNcbuIPAgAAAXnppm0rAAAEAwBGMEQC
IDO+rfNYB6bfaK9zS7AoBM6ZNPx++WA13JcxaH03sslRAiAam8XaEsCUOT7TNe/8
LjqMNsuFL9iAxQabtNvIhldbvgB3AFGjsPX9AXmcVm24N3iPDKR6zBsny/eeiEKa
Df7UiwXlAAABeemmbW4AAAQDAEgwRgIhAPWyMK37IqLxclln51T/fg1B/r9sZv4w
TpC8xvsI3nExAiEAvyAyIap5eITHOqXPF+E5gzyHkgOvF5zrjL6DdERXVG4wDQYJ
KoZIhvcNAQELBQADggEBAG6W8Hn57NM3T/yqy+6gtEfksW5OEXbprMWeZc9VGbne
ULDk7KRaARDWT7TZEF3jbI0VOGc9sXYkizDbQYXM81eee5utGCaFESroWxZnVNgp
QVSe99iLmRzb01dB65GatedsG6wqL5hxSt+Kh9v00PlpK08/NGNQ9nKXd6xuBFUy
//6XgBcEPlqDB6pPj4fWRTg/F9vLlpkcP41zYbJJ9MlyEBxCecnyIkaekJQC0KgY
xirrh8fUHM/5vc8f5Q6FU0AQAoZyNvr/dxRmjJCvCdiF35AUDzE5xSf8cOYQnYHo
tNHrH4+e8mXBSQANTLxGJf7E7EZTMSu4NLoa5xS65DQ=
-----END CERTIFICATE-----

我是之前的项目升级推送服务,简单配置之后就可以使用华为推送服务。如果是新用户,需要根据个推、华为指引,下载文件、配置项目编号等,配置完成后,验证手机token。

通过hbuilderx获取手机的clientId,然后将clientId在nuiPush后台故障排除中验证手机设备。

 通过推送服务、添加推送通知,发送测试通知

 测试通过后重点来了:怎么通过自定义代码发送成功呢?华为、小米、苹果都有坑

1、推送及角标细节,直接上代码:

  public static void main(String[] args) {
        new AppInfo().test20220308();
}
public void getApi(){
        GtApiConfiguration apiConfiguration = new GtApiConfiguration();
        //填写应用配置
        apiConfiguration.setAppId("8AG234SqvS33458w1oMdbT5oert7");
        apiConfiguration.setAppKey("hI0a7m234346I9xfkwFaJ3ertq4");
        apiConfiguration.setMasterSecret("fu2433453DfP8EIierwFy4");
        // 接口调用前缀,请查看文档: 接口调用规范 -> 接口前缀, 可不填写appId
        apiConfiguration.setDomain("https://restapi.getui.com/v2/");
        // 实例化ApiHelper对象,用于创建接口对象
        ApiHelper apiHelper = ApiHelper.build(apiConfiguration);
        // 创建对象,建议复用。目前有PushApi、StatisticApi、UserApi
        pushApi = apiHelper.creatApi(PushApi.class);
    }
public void test20220308() {
        getApi();
        //根据cid进行单推
        PushDTO<Audience> pushDTO = pushDTO20220308();
        // 设置推送参数
        pushDTO.setRequestId(System.currentTimeMillis() + "");
        PushMessage pushMessage = new PushMessage();
        pushDTO.setPushMessage(pushMessage);
        GTNotification notification = new GTNotification();
        pushMessage.setNotification(notification);
        notification.setTitle("标题OA" );
        notification.setBody("测试批量推送+payload");
        /*notification.setClickType("url");
        notification.setUrl("https://www.getui.com");*/
        notification.setClickType(CommonEnum.ClickTypeEnum.TYPE_PAYLOAD.type);
        notification.setPayload("{openPage:/index.html#/modulecontrol,name:zhangsan,id:12342412412}");

        // 设置接收人信息
        Audience audience = new Audience();
        audience.addCid("9fd63369565c9df734208249faa8d119");
        pushDTO.setAudience(audience);
      /*
        Audience audience1 = new Audience();
        audience1.addCid(CID_6);
        pushDTO.setAudience(audience1);*/
        System.out.println("ssssssssssssssssssssssssssss");
        System.out.println("pushDTO.toString():"+pushDTO.toString());

        // 进行cid单推
        ApiResult<Map<String, Map<String, String>>> apiResult = pushApi.pushToSingleByCid(pushDTO);
        System.out.println("=====================================================");
        System.out.println(apiResult);
        if (apiResult.isSuccess()) {
            // success
            System.out.println("返回结果集是:"+apiResult.getData());
        } else {
            // failed
            System.out.println("code:" + apiResult.getCode() + ", msg: " + apiResult.getMsg());
        }
    }
 private PushDTO<Audience> pushDTO20220308() {
        PushDTO<Audience> pushDTO = new PushDTO<Audience>();
        pushDTO.setRequestId(System.currentTimeMillis() + "");
        pushDTO.setGroupName("CFGOA");
        Settings settings = new Settings();
        settings.setTtl(3600000);
        Strategy strategy = new Strategy();
        strategy.setSt(1);
        strategy.setDef(4);//默认走厂商通道,否则android应用打开时会导致打开应用失败
        strategy.setIos(4);
        settings.setStrategy(strategy);
        pushDTO.setSettings(settings);
        PushMessage pushMessage = new PushMessage();
        GTNotification notification = new GTNotification();
        notification.setLogoUrl("https://url");
        notification.setTitle("消息title-" + DateUtils.getDate());
        notification.setBody("你1有一个待审核工作");
        notification.setClickType(CommonEnum.ClickTypeEnum.TYPE_PAYLOAD.type);
        notification.setUrl("");
        JSONObject payload =new JSONObject();
        payload.put("openPage","/index.html#/modulecontrol");
        payload.put("name","zhangsan");//消息表编号,更新阅读状态
        payload.put("id-在线","12342412412");
        notification.setPayload(payload.toJSONString());
        pushMessage.setNotification(notification);
        pushDTO.setPushMessage(pushMessage);

        PushChannel pushChannel = new PushChannel();
        AndroidDTO androidDTO = new AndroidDTO();
        Ups ups = new Ups();
        ThirdNotification thirdNotification = new ThirdNotification();
        thirdNotification.setClickType(CommonEnum.ClickTypeEnum.TYPE_STARTAPP.type);
        thirdNotification.setTitle("第三方title-" + System.currentTimeMillis());
        thirdNotification.setBody("第三方content");
        ups.setNotification(thirdNotification);

        //设置options
        Map<String, Map<String,Object>> options = new HashMap<String, Map<String, Object>>();
        Map<String,Object> all = new HashMap<String, Object>();
       // all.put("channel","default");
        options.put("ALL",all);
        all.put("key","value");
        //华为设置
        Map<String,Object> hw = new HashMap<String, Object>();
      //  all.put("badgeAddNum",3);
      //  all.put("badgeClass","com.getui.demo.GetuiSdkDemoActivity");
        options.put("HW",hw);
        /****个推官方说如下配置可实现推送、角标,经测试只实现了推送,并没有角标(当前只有鸿蒙设备,华为设备待测)************/
        hw.put("/message/android/notification/badge/class","com.getui.demo.GetuiSdkDemoActivity");
        hw.put("/message/android/notification/badge/add_num",1);
        hw.put("/message/android/notification/badge/set_num",2);
        /*小米如下设置可以实现推送、角标,角标自增,点击推送后角标减少*/
        Map<String,Object> xm = new HashMap<String, Object>();
        xm.put("/message/android/notification/badge/add_num",1);
        xm.put("/message/android/notification/badge/set_num",2);
        xm.put("channel","Default");
        options.put("XM",xm);
        ups.setOptions(options);

        androidDTO.setUps(ups);
        pushChannel.setAndroid(androidDTO);
/********苹果如下配置实现推送、角标,角标自增,问题:点击推送消息进入应用后,角标不减少*/
        IosDTO iosDTO = new IosDTO();
        Aps aps = new Aps();
        aps.setSound("default");//设置苹果的声音
        aps.setContentAvailable(0);
        aps.setCategory("ACTIONABLE");
        Alert alert = new Alert();
        alert.setTitle("消息title-" + System.currentTimeMillis());
        alert.setBody("你有一个待审核工作");
        aps.setAlert(alert);
        iosDTO.setAps(aps);
        iosDTO.setAutoBadge("+1");//苹果角标
        iosDTO.setPayload(payload.toJSONString());
        pushChannel.setIos(iosDTO);
        pushDTO.setPushChannel(pushChannel);
        return pushDTO;
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值