关于极光推送遇到的小问题整理

喜欢而已 提交于 2020-02-20 14:18:32

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()
                        )
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!