admin管理员组文章数量:1533110
项目使用HbuilderX构建,使用个推进行消息推送。项目中踩到的坑进行记录分享,避免他人踩坑,匆忙记录,后续继续解决鸿蒙推送角标、苹果查看后角标减少。
个推配置文章链接:厂商应用开通指南-个推文档中心
个推华为角标:多厂商参数-个推文档中心
uni push :UniPush使用指南 - DCloud问答
1、华为推送:项目已经实现华为手机、平板的消息推送,突然收不到推送,只能一步一步找原因,最后确定是华为推送服务更新后,需要重新配置华为推送服务:
参照个推信息填写回执名称、地址、证书,其他两项可不填写,提交即可,名称自定义,地址、证书如下:
-
回调地址(杭州机房)
https://thirdrcp-hz.getui/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/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");*/
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;
}
版权声明:本文标题:个推华为推送、小米推送、苹果推送及角标 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1725868486a1046009.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论