如何使用Springboot向iOS应用程序发送推送通知

4
我想从我的SpringBoot API向我的应用程序发送推送通知。我尝试了这段代码,但它没有起作用。
@RestController
public class NotificationController {

    ApnsService service =
            APNS.newService()
                    .withCert("/Users/User/Documents/Personal_Projects/Api/src/main/resources/Certificates.p12", "a")
                    .withSandboxDestination()
                    .build();

    String payload = APNS.newPayload()
            .alertBody("My first notification\nHello, I'm push notification")
            .sound("default")
            .build();

    service.push(merchantObject.getEmail(), payload);
    System.out.println("The message has been hopefully sent...");

    return new Response("", "Sent successfully");

    }

代码返回成功响应,但我在我的应用程序上没有收到推送通知。代码中缺少什么?当我使用Firebase发送推送通知时,我可以在我的iPhone上收到通知。

2个回答

2
问题在于你将通知发送到了电子邮件地址而不是通知令牌。最初的回答中提到,需要将通知发送到正确的目标,即通知令牌,而不是电子邮件地址。请检查代码并更正该错误。
    service.push(merchantObject.getEmail(), payload);

你需要从设备获取通知令牌并将其发送给该应用程序。原始答案翻译成“最初的回答”。

0

您需要确认您的防火墙可以访问以下网站:

    public static final String SANDBOX_GATEWAY_HOST = "gateway.sandbox.push.apple.com";
    public static final int SANDBOX_GATEWAY_PORT = 2195;

    public static final String SANDBOX_FEEDBACK_HOST = "feedback.sandbox.push.apple.com";
    public static final int SANDBOX_FEEDBACK_PORT = 2196;

    public static final String PRODUCTION_GATEWAY_HOST = "gateway.push.apple.com";
    public static final int PRODUCTION_GATEWAY_PORT = 2195;

    public static final String PRODUCTION_FEEDBACK_HOST = "feedback.push.apple.com";
    public static final int PRODUCTION_FEEDBACK_PORT = 2196;

由于notnoop/java-apns使用套接字将推送发送到APNS服务器,


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接