你如何设置 javapns(iOS 推送通知)?

Posted

技术标签:

【中文标题】你如何设置 javapns(iOS 推送通知)?【英文标题】:How do you set up javapns (push notifications for iOS)? 【发布时间】:2012-02-20 07:35:36 【问题描述】:

我查看了 javapns 的文档/wiki。 http://code.google.com/p/javapns/

不幸的是,对我来说应该是显而易见的。

如何设置有效的推送通知服务器?如,有一个 .jar 文件,但我希望能提供更多信息。我需要在Tomcat中运行它吗?有没有可行的例子?'

谢谢。

【问题讨论】:

【参考方案1】:

我过去使用过Java APNS。它有一个 BSD 许可证并且做得很好,一旦设置了证书就很容易使用。总而言之,设置推送通知并不是一项非常简单的任务,但如果还有什么还不能正常工作,我通常会得到可用的调试输出。

这个解决方案的一个好处是您可以单独运行它java -jar MyAPNSPusher 并通过一些 cron 作业触发它或将逻辑包含在一些 .war 文件中。我还发现这个库非常轻量级,我想你也可以在 maven repo 中找到它。

Readme.markdown 中的示例

要发送通知,您可以分两步进行:

    设置连接

    ApnsService service =
        APNS.newService()
        .withCert("/path/to/certificate.p12", "MyCertPassword")
        .withSandboxDestination()
        .build();
    

    创建并发送消息

    String payload = APNS.newPayload().alertBody("Can't be simpler than this!").build();
    String token = "fedfbcfb....";
    service.push(token, payload);
    

[...]

替代方案

如果托管您自己的服务器解决方案过于繁琐,那么您可以回退到第三方服务,这通常可能是一件好事,因为托管运行此类服务的服务器可能经常被低估。使用这些服务,您通常会为推送消息支付少量(几分之一)。我遇到的两个是

http://www.ilime.com

编辑自 2011 年 7 月 1 日起,iLime API 已不再作为公共服务。

http://urbanairship.com/

【讨论】:

谢谢。我想我真正的问题更多是在编写任何代码之前必须在 Java 服务器内部进行的设置/管道。一次又一次地,对于新手来说,Java 的最大障碍是建立项目的开销。 Java APNS 应该是一个服务器,不是吗?没有关于如何设置服务器部分的说明。如果我们知道 java 服务器管理员是先决条件,那就足够公平了,但我确信新手会迷路,因为这部分不清楚,我希望文档能更清楚地说明这一点。 开发人员通常从用例“我被告知设置推送通知”开始。在 wiki 中,至少如果我的案例具有代表性,我看不到任何“下载 tomcat”的内容。或者“您需要知道如何设置 Java 服务器”。或者也许我错了。是否有任何不是代码 sn-ps 的完整工作示例项目?我不确定如何让我的 ios 应用程序与标准 java 项目通信,除非它通过 web 服务,这需要基于 java 的服务器,不是吗? 也许您应该考虑使用第三方服务,因为它们真的很便宜,并且可以让您快速启动和运行。当您看到需要它或因为需要发送数百万条推送消息而想要省钱时,您可以重新设置自己的服务器...... 是的,我可能需要先这样做。感谢帮助 您的应用程序不会与“推送程序”对话。它的工作方式不同。您的 Java 应用程序(无论是基于服务器还是“裸机”运行)与 Apple 服务器通信并将推送通知发送到这些服务器,然后 Apple 将推送通知发送到您的 iPhone 应用程序。如果您的应用程序需要从该服务器下载一些其他数据,那么这是另一个故事,不再与推送消息直接相关。【参考方案2】:

JavaPNS 是在您的项目中使用的 Java 库。它只能用于使用您在 Apple 开发人员工具网站上创建的证书连接到 Apple 推送通知服务器。

所以,如果我正确地阅读了你的问题,这不是一个独立的程序,可能不是你想要的。

如果您尝试向 Apple iOS 设备发送推送通知,那么这就是您想要的,但您需要先编写应用程序的其余部分,然后将此库添加到其中。

【讨论】:

添加库后如何使用此发送消息 查看维基页面...:code.google.com/archive/p/javapns/wikis/WorkingExample.wiki

以上是关于你如何设置 javapns(iOS 推送通知)?的主要内容,如果未能解决你的问题,请参考以下文章

无法让 JavaPNS 用于推送通知

iOS:使用 JavaPNS 从服务器发送的通知未到达

将 javapns 用于推送通知提供程序/服务器

iOS极光推送设置别名

Quickblox - 如何将通知推送到 Android 和 iOS 平台?

iOS:生产推送通知,来自 APNS 服务器的无效令牌