问题标签 [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 投票
0 回答
318 浏览

java - 来自一台 Java/Tomcat 服务器的多个应用程序 ID(多个 .p12 证书)的 APNS PUSH

我正在使用 notnoop 库来发送 APNS 推送。我的服务器基于 java 构建并托管在 tomcat/apache 网络服务器(一个静态 IP)上。我有 2 个 iphone 应用程序在应用商店。两者都有应用程序 ID 和证书。当我尝试从我们的服务器发送推送时,它只会将推送发送到证书第一次初始化的那个应用程序。假设我有 2 个应用程序,AppA 和 AppB,它们有 2 个不同的应用程序 ID,AppIDA 和 AppIDB,并且它们有自己的证书 (.p12) CertiA 和 CertiB。在我重新启动我们的 tomcat 服务器后,如果启动了一个推送,比如说 AppA,它将成功交付到设备。如果为另一个 App AppB 发起另一个推送,它不会传递到设备。我不明白为什么会这样。我单独测试的两个证书都工作正常。下面是java代码。

此代码每次为每个 App AppA 和 AppB 创建新实例。

0 投票
0 回答
277 浏览

ios - 来自 Java APNS 的 iOS 中的静默推送通知

推送通知在 Java APNS 的应用程序中正常工作,

但是有效载荷中的一个通知

这在 iPhone 7 的应用程序的任何状态下都不起作用,在其他设备上工作,还要检查电池模式。

从发件人我们看到日志并检查它正在发送但未在设备中收到的响应。特定设备或状态的原因是什么?我在网上搜索过,但看到的内容几乎与我使用的内容相同, func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) 当设备收到任何类型的推送通知时,我在此功能中获取了数据。

0 投票
0 回答
395 浏览

java - org.springframework.http.converter.HttpMessageNotWritableException

我正在使用 gson maven 依赖项和 apns maven 依赖项(com.notnoop.apns version 0.2.3,这会产生此错误,使用version 0.1.6很好,但我想要的某些方法在此处不可用)并且我只想要 json 格式的响应,将其转换为toString()会改变我的整个项目响应

0 投票
1 回答
607 浏览

java - Java APNS 通知未在设备上发送/接收

最近开始收到此错误:

一些背景:

以下是我的代码发送 APNS 通知的方式:

有时推送通知正在通过并且正在接收,而其他时候则没有,并且引发了上述错误。有人可以帮忙吗?

0 投票
0 回答
357 浏览

apple-push-notifications - 连接到 APNS 时出错 (https://api.development.push.apple.com/)

我正在尝试使用 HttpsUrlConnection(java 代码)连接到 APNS(https://api.development.push.apple.com/)。我已经从https://api.development.push.apple.com/下载了证书并添加到 java 密钥库。

代码:

我按照https://github.com/escline/InstallCert中提到的步骤获取服务器证书并在本地存储。

我总是将 responseCode 设为 -1(无效的 http 响应)。

请帮助我,因为我不明白这是由于证书还是其他原因。

0 投票
0 回答
891 浏览

java - iOS MDM——从 Java 发送 MDM 推送通知?

我正在使用 Java 开发一个简单的 iOS 移动设备管理 (MDM) 服务器,作为脑力锻炼和概念验证。到目前为止,我有一系列 JAX-RS RESTful 服务端点允许我做:

  • 初始设备注册
  • 初始 MDM 证书注册 (SCEP)
  • 设备证书注册 (SCEP)
  • MDM 配置文件有效负载安装

我的 MDM 个人资料看起来像这样。它使用 SCEP 配置设备证书并安装有关签入 URL 和 MDM 本身的信息:

无线安装完成后,我会在我的 iOS 设备上看到配置和设备证书。我还看到对我的 /checkin 端点的调用,其中包含 APNS 的 PushMagic 和设备令牌值。正是在这一点上,我遇到了障碍。

我正在使用 java-apns 库尝试使用 PushMagic 和设备令牌通过 APNS 向我的设备发送推送通知。我的电话看起来像这样:

但是,当我尝试发送推送通知时,我在日志中看到如下所示的错误:

知道这里会发生什么吗?据我了解,iOS 设备应该会收到推送通知,然后它将 MDM 配置文件中定义的 URL 称为 ServerURL。这不正确吗?我误解了这里的流程吗?如何更正 MDM 推送通知的问题?

更新: 所以我现在尝试了两种测试方法:使用 java-apns 库和使用 curl。使用 curl,我的命令如下所示:

然而,curl 命令失败,并显示错误消息{"reason":"BadDeviceToken"},即使我正在将设备在调用中提供的值复制并粘贴到我的/checkin端点。完整的输出如下所示:

推送证书本身是通过在 macOS High Sierra 上安装 macOS 服务器然后导出安装 Profile Server 时生成的证书生成的。我不明白为什么当令牌直接来自设备本身时我会收到错误的令牌错误。我假设这是调用我的 java-apns 调用失败的相同错误。该调用的输出如下所示:

0 投票
0 回答
300 浏览

spring-boot - PlatformApplicationDisabledException

我的应用程序有时会在控制台中出现以下错误而关闭:

我已经联系了 aws 服务团队,以调查我在程序中做错了什么。

所以,他们回复说:

当下游推送通知服务拒绝随请求提供的凭据时,将触发 PlatformApplicationDisabledException。

在您的情况下,下游提供者是 APNS_SANDBOX。确保您在 APNS SNS 应用程序中使用有效的沙盒凭据。

Apple 拒绝了您的凭据,可能是因为它们已过期或用于生产应用程序。

有人可以指导我解决这个问题。

谢谢你。

0 投票
0 回答
402 浏览

ios - 无法在 javapns 的 Apple 推送通知中设置标题字段“apns-push-type”

我有一个向 iOS 发送通知的旧代码。

一切都按预期工作。今天,作为增强功能的一部分,我需要在 http 标头中发送“apns-push-type”,这是 iOS 13+ 所要求的。

“apns-push-type”的 Apple 开发人员文档链接

我找不到任何选项(方法、类等)来使用 apns 库设置 http 标头信息。

下面是我的项目中用于 apns jar 的类路径条目,

请帮助我。我搜索了互联网,stackoverflow,但没有找到任何线索。

0 投票
1 回答
435 浏览

ios - 应该在应用服务器上使用哪个证书来使用 Pushkit 和 APNS 唤醒 iOS 应用?

我在我的 iOS 应用程序中使用 Websocket 进行数据传输。但是,由于有时当应用程序在后台挂起时,套接字会中断。在这种情况下,我使用 Voip 推送到 iOS 应用程序来唤醒应用程序。

我将从我的登录 API 请求中收到的令牌didUpdatePushCredentials发送到我的应用服务器。

我心中有以下疑惑,并为之寻求答案。

  1. 是否PushKit需要 APNS 证书和 Voip 证书?或者只是其中一个,哪一个,为什么?
  2. 如果它需要这两个证书,我是否需要将这两个证书都保留在应用服务器上以向我的应用发送成功推送?
  3. 服务器端应该使用哪个证书来推送从服务器端调用“didReceiveIncomingPushWithPayload”的通知?

请在服务器端的代码下方找到:

我做了以下实施,但失败了: 1. 创建了 APNS SSL 服务证书沙盒 + 生产。2. 将在 didUpdatePushCredentials 中收到的令牌发送到服务器。3. 服务器使用 APNS 证书发送推送。但由于找不到任何相应的证书而失败。

因此,我无法将要发送到服务器的令牌与将在服务器上用于发送推送的证书相结合。

0 投票
0 回答
46 浏览

ios - 需要在 APNS 中立即使通知消息过期

我试图立即使通知消息过期。因此用于在请求中添加以下标头。

request.setHeader("apns-expiration", "0", true);

但是在设置此标头后,关闭飞行模式时仍然会收到通知。

有什么我需要做的吗?