【问题标题】:iOS + Xcode + Swift 4.2 Send messages to APNs from an iOS DeviceiOS + Xcode + Swift 4.2 从 iOS 设备向 APNs 发送消息
【发布时间】:2019-05-16 05:51:36
【问题描述】:

在过去的一周里,我一直在到处搜索(并进行试验),但我似乎找不到任何可以为我指明正确方向的东西。我在我的 Mac 上运行本地版本 (https://github.com/onmyway133/PushNotifications/releases),我在 iPhone 上接收通知很好(p8 和 p12),但我真正需要的是能够从 iOS 设备发送推送通知消息。

它必须是可能的,因为它是一个简单的 HTTP/2 JSON 输出。我为服务器端实现浏览了许多不同的库和示例,但找不到任何适用于 Swift 和 iOS 的东西(我无法编译到目前为止我能找到的东西)。

非常感谢任何和所有的帮助和建议。

【问题讨论】:

  • 您能否考虑将 Firebase 添加到您的 ios 应用程序中?通过这种方式,您可以使用 firebase rest api 通过 http post call 直接从设备发送推送通知。 Firebase 在您和苹果 APNs 服务器之间架起了一座桥梁。您只需要来自 firebase 控制台的服务器身份验证令牌和要发送推送的设备的 fcm 令牌。如果这可能是一个有效的场景,请查看 Firebase Cloud Messaging。
  • 我查看了 Firebase,虽然有一种方法可以发送“上游”消息 - 我还没有找到一种方法可以将此类消息自动路由到特定设备。
  • 如果您对@sateesh 的回答感到满意,那也是一个有效的回答,我不会再进一步​​讨论 FCM。但是您可以通过来自发送设备的 http post 请求(知道接收设备的推送令牌)将推送通知从一个设备发送到另一台设备。看这里如何使用http请求发送推送stackoverflow.com/questions/38834020/…

标签: ios swift xcode apple-push-notifications


【解决方案1】:

试试NWPusher,您不仅可以从 Mac OS X 和 iOS 发送推送通知。

https://github.com/noodlewerk/NWPusher

从 iOS 推送

终极体验当然是直接从 iPhone 推送到 iPhone。这可以通过 Pusher iOS 应用程序来完成。在运行 PusherTouch 目标之前,请确保在应用程序中包含证书、私钥和设备令牌。获取您之前导出的 PKCS12 文件并将其包含在 PusherTouch 包中。然后进入Touch文件夹下的NWAppDelegate.m,配置pkcs12FileNamepkcs12PassworddeviceToken。现在运行PusherTouch 目标:

如果一切设置正确,您只需要连接和推送。然后您应该会在设备上收到Testing.. 推送消息。

【讨论】:

  • 谢谢。 NWPusher 运行良好,我可以从我们的 iOS 应用程序发送我的消息,但是......虽然 p12 用于开发和分发 - 只有“沙盒”模式有效,但“生产”返回错误(错误令牌)。我有什么遗漏吗?
  • 您是否将消息发送到 APNS 生产服务器?
  • 是的,基本上从我到目前为止收集到的信息来看 - 看起来 APN 将设备的“状态”与环境相匹配。我在这里可能错了,但看起来如果令牌是为处于“测试”模式的设备生成的(例如,在附加设备上通过 Xcode 运行调试构建),那么该令牌只能在沙盒环境中使用,并且很快。如果这是真的,那么就没有问题,并且我的应用程序目前在 APNs 连接方面按设计工作,但是 - 如果有人可以提供任何与此推测合作的文档,我将不胜感激。
猜你喜欢
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多