1.ios端收不到消息
极光推送分开发环境和生产环境,注意这里的开发和生产和我们自己的开发,测试,生产环境不一致。我们的开发测试生产可能用的都是极光的生产环境;
前后端一定要对清楚,不然会费很多时间定位问题:
这里的apnsProduction 设置为true 为生产环境
payload = PushPayload.newBuilder()
.setPlatform(Platform.android())
.setAudience(Audience.alias(accounts))
.setNotification(Notification.newBuilder()
.addPlatformNotification(AndroidNotification.newBuilder()
.setAlert(alert)
.setStyle(1)
.setBigText(alert)
.setTitle(notificationTitle)
.build())
.build()
)
.setMessage(cn.jpush.api.push.model.Message.newBuilder()
.setMsgContent(content)
.setTitle(contentTitle)
.addExtras(message.getBusinessContent())
.build())
.setOptions(Options.newBuilder()
.setApnsProduction(JPUSH_PROPERTIES.isApns())
.setTimeToLive(86400)
.build())
.build();
这里的ApnsProduction设置为true为生产环境
2.ios端消息没有标题
ios和安卓解析标题不一样,ios标题放在alert中,安卓在title中,ios需要用IosAlert建造ios的alert,里边参数包含主标题,副标题,通知文本
IosAlert iosAlert = IosAlert.newBuilder().setTitleAndBody(notificationTitle, null, alert).build();
if (notificationType.equals(NotificationType.IOS.name())) {
payload = PushPayload.newBuilder()
.setPlatform(Platform.ios())
.setAudience(Audience.alias(accounts))
//.setAudience(Audience.all())
.setNotification(Notification.newBuilder()
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(iosAlert)
.setBadge(JPUSH_PROPERTIES.getIosBadge())
.setSound(JPUSH_PROPERTIES.getIosSound())
.build())
.build()
)
来源:CSDN
作者:zhushanluanyun
链接:https://blog.csdn.net/zhushanluanyun/article/details/104408257