问题标签 [javaapns]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
169 浏览

java - 计算 APNS 帧大小/格式化字节流

根据 [ https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html#//apple_ref/doc/uid/TP40008194-CH101-SW4 ] 出现正确的通知格式成为:

假设这一切都是正确的,那应该给出一个帧数据长度总计:35 + 178 + 7 + 7 + 4=232通过对所有帧项总数求和。


但是在查看一些notnoop/java-apns 代码时:

我看不出这是如何正确计算长度的。但是,我的代码不起作用,而这可能起作用。我究竟做错了什么?

0 投票
1 回答
437 浏览

ios - 无法向 iPhone 发送推送通知

我正在使用 Java APNs 向 i-phone 发送推送通知。能够向一个应用程序发送通知,但无法向其他应用程序发送通知。对于第一个应用程序(成功发送推送通知)正在使用

并且对于其他应用程序(不成功)正在使用相同的

有什么帮助吗??

0 投票
0 回答
98 浏览

ios - 我们可以在向两个不同应用程序发送通知的单台机器上托管两个 API(APN 提供者)吗?

我对 iOS 应用程序开发和 APNs 非常陌生。我开发了两个配置为接收推送通知的应用程序。

在我的测试环境中,我在同一台机器上托管使用 Javapns 库编写的两个 API apiAppX 和 apiAppY。apiAppX 和 apiAppY 分别为 appX 和 appY 生成推送通知(警报)。我为不同的应用程序使用不同的 p12 文件。

问题是,如果我先为 appX 生成 APNs 证书,那么它会收到通知,但 appY 不会。如果我首先为 appY 生成 APNs 证书,那么它会收到通知,但 appX 不会。

我认为这个问题是因为我在一台机器上托管两个提供商而引起的。阅读此文档后,我得出了结论。特别是,在阅读以下段落后:

请注意,提供者连接仅对交付到一个特定应用程序有效,由证书中指定的主题(捆绑 ID)标识。APNs 还维护一个证书撤销列表;如果提供者的证书在此列表中,APN 可能会撤销提供者信任(即拒绝连接)。

我对吗?

谢谢。

0 投票
0 回答
728 浏览

ios - iOS 通知 - 如何使用一个 P12 文件管理两个应用 ID

我有一个为 iPhone 和 iPad 构建的通知项目。所以我在 Apple Store 上有 2 个应用程序 ID = 2 个应用程序。

如果我了解 Apple 官方指南(https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html),我必须为特定应用创建推送通知证书ID。因此,由于我有两个 App ID,最后将创建 2 个通知功能证书。

在我的服务器应用程序上,我必须管理一个 .p12 文件来发送通知。当我有 1 个 APNs 证书(例如与我的 iPhone 应用程序有关的证书)时,它运行良好。当我有一个包含 2 个 APNs 证书(iPhone + iPad)的 .p12 文件时,我无法从服务器端发送通知!错误是“无法发送通知,错误代码为 8”。我正在使用沙盒网关,因为我正在使用 DEV 证书。

如何在一个 .p12 文件中管理 2 个应用程序?可能吗 ?我正在使用https://github.com/notnoop/java-apns库。

感谢您的时间,

0 投票
1 回答
603 浏览

java - java-apns INVALID_TOKEN 响应

我正在使用java-apns库来发送推送通知消息。我发送token_id到 APNS 服务器并接收响应INVALID_TOKEN。所以我的问题是 APNS 服务器对此响应使用什么算法?我认为最好在我这边检查这个 token_id,如果没问题,然后将消息推送到这个令牌。提前致谢。

0 投票
1 回答
401 浏览

java - 向 APNS 发送推送通知(AdHoc 部署)

我正在尝试将推送通知从我的 Java 后端发送到我的移动应用程序。为此,我使用 notnoop java-apns 库。我设法设置了所有东西,并且一切都在开发(开发证书和配置文件)上完美运行。

我想尽快发布该应用程序,但首先我想设置所有内容,以便在它上线后做好准备。所以我创建了一个“App Store and Ad Hoc”证书,以及一个“Ad Hoc”配置文件。然后我尝试使用该 P12 文件,该文件应该与应用程序上线后我将使用的文件相同。但不幸的是,我遇到了以下异常:

有谁知道可能会发生什么?怎么可能在开发而不是 AdHoc 上正常工作(我猜也是生产,因为他们使用相同的推送通知证书)?

0 投票
1 回答
230 浏览

ios - APNS 无法通宵工作

我曾经通过我的服务器向 iOS 手机发送通知。

我的 APNS 证书自 2014 年 12 月以来没有更改,并且仍然有效。

但是,从昨天开始,当服务器尝试发送任何 APNS 通知时出现此错误:

可能是什么原因?由于我严格没有更改我的后端(没有交付)并且它昨天工作......

这可能是关于 APNS 服务器的临时错误吗?

0 投票
2 回答
5293 浏览

java - SocketException:推送到生产目的地时,连接被远程主机关闭

我需要向 IOS 设备发送通知,我们使用 Java 作为后端。我正在使用notnoop/java-apns库将通知推送到 IOS 设备。

当我尝试使用生产证书和生产目标推送到 APNS时,出现SocketException:Connection closed by remote host 。

当我使用开发证书和沙盒目的地时,一切正常,设备收到推送通知。

我尝试使用另一个工具和我们的生产证书推送通知,并且推送已收到,因此证书有效。我不明白出了什么问题。我是在做错什么,还是与网络相关的问题或图书馆出了什么问题?

以下是堆栈跟踪:-

重试 3 次后无法发送消息。Message(Id=1; Token=0557A5BE7EEA5718A1064FC138EEE855BBDDE15FC8C5841CEADBAD2716A42AEC; Payload={"aps":{"alert":{"body":"任务已分配给您。","title": “新任务!”},“声音”:“默认”,“徽章”:1}})java.net.SocketException:连接被远程主机在sun.security.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1490 ) 在 sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123) 在 java.io.OutputStream.write(OutputStream.java:75) 在 com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java: 328) 在 com.notnoop.apns.internal.ApnsConnectionImpl.sendMessage(ApnsConnectionImpl.java:312) 在 com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:46) 在 com.notnoop.apns.internal.AbstractApnsService.push(AbstractApnsService.java:89) 在 com.notnoop.apns.internal.ApnsServiceImpl.push(ApnsServiceImpl.java:36) 在 com.mobileinsight.api.service.impl .IOSBroadcastServiceImpl.broadcastNewTaskNotifications(IOSBroadcastServiceImpl.java:125) 在 com.mobileinsight.api.service.impl.IOSBroadcastServiceImpl.broadcastIOSPushNotifications(IOSBroadcastServiceImpl.java:60) 在 com.mobileinsight.api.service.impl.PushNotificationServiceImpl.pushNotificationsInBulk(PushNotificationServiceImpl.java) :29) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang。反射.Method.invoke(Method.java:606) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) 在 org.springframework.aop.framework.ReflectiveMethodInvocation 的 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319) .proceed(ReflectiveMethodInvocation.java:150) 在 org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) 在 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 在 org. springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at com.sun.proxy.$Proxy136.pushNotificationsInBulk(Unknown Source) at com.mobileinsight.api.quartz.PushNotificationBatchRunner.doWork(PushNotificationBatchRunner.java:24)在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method. java:606) at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:64) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53) at java.util.concurrent.Executors $RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) at java .util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask。在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread 的 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 运行 (ScheduledThreadPoolExecutor.java:293) .run(Thread.java:745)

0 投票
1 回答
932 浏览

ios - 如何获取所有注册设备(APNS)的设备令牌?

我有一个托管在 Apple Store 中的 iPhone 应用程序,最近由于数据库故障(损坏),该应用程序的所有注册设备令牌都已损坏,现在我无法向设备推送通知。

有什么方法可以从 Apple Servers 再次获取注册的设备令牌?

0 投票
1 回答
1298 浏览

java - APNS - 无法使用 Java 向 iOS 设备发送通知

我需要让这个工作,但我完全没有选择......任何帮助将不胜感激。

我正在尝试使用 Java 向我的 iOS 设备发送通知,并遵循了许多教程和论坛帖子,主要是这些: raywenderlich.comJavaPNS 基本示例和下面显示的 java-apns 示例。

但是,我能够使用 PHP 发送通知。有人能看到我做错了什么吗?我已经为此工作了几天,但无法弄清楚问题出在 b/c 我已经复制了其他人声称有效的确切代码。这是我的代码:

这是我得到的例外:

当我包含错误的密码时,我会收到密码错误的异常,因此我知道它正在查找 .p12 文件。我可以使用我在网上找到的 PHP 示例发送通知,但 Java 代码肯定缺少一些东西。我已经尝试了 java-apns 库(如上所示)和 JavaPNS 库,我得到了相同的结果。