c# - 使用 ASP.NET 服务器添加 iPhone 推送通知

标签 c# iphone push-notification apple-push-notifications

这是概述。

我需要向 iPhone 应用程序添加推送通知。服务器端是 c# 中的 ASP.NET。

我想要的是一些指导来完成整个过程。然后,我将发布一个 iPhone 项目和一个 ASP.NET Web 应用程序的通用代码以及分步说明,以便其他人可以学习。

这是我的理解:

  1. 申请APNS证书并添加到keychain。 (不确定如何将其引入 ASP.NET)
  2. 让 iPhone 注册 registerForRemoteNotificationWithTypes,将值发送到您的服务器,并存储在数据库中。看起来这个注册代码应该很容易,但我找不到好的示例。 (将值发送到 ASP.NET 服务器没有问题。)
  3. 您的服务器应用程序创建一个有效负载字符串,进行 JSON 编码,使用保存在数据库中的设备 token 为每台(或可以是一组)iPhone 发送到 APNS 服务器。

所以要开发加法,这里是部分:

  • iPhone注册码

  • 将 iPhone 注册码发送到服务器并保存到数据库的代码(这很简单,我已经有了这些部分)。

  • C# 中的服务器端 APNS 联系人代码。这还包括如何使用在 Apple Developer 网站上生成的证书。

  • 此外,payload 是否可以是一个多项选择题,可以将回答的结果发送回服务器?

在此先感谢您的帮助。我会将其转化为其他人的教程。

最佳答案

我花了很长时间才弄明白,但我最终还是根据人们留下的一些小线索拼凑了起来。您需要下载您在开发者门户注册的APPID对应的证书。该证书必须转换为 P12 格式才能在 Windows 上使用。 UNIX 中的这些命令终于为我完成了:

第一步:

openssl x509 -in aps_developer_identity.cer -inform DER -out aps_developer_identity.pem -outform PEM}

其中 aps_developer_identity.cer 是您从门户下载的文件

第 2 步:

openssl pkcs12 -nocerts -out APSCertificates.pem -in APSCertificates.p12

其中 APSCertificates.p12 是您从 Mac Keychain 导出的文件。这很关键,您必须将证书从门户导入钥匙串(keychain)。在我的证书中找到它,打开三角形并突出显示证书和私钥,然后右键单击并导出它们。给他们一个密码并将它们保存到 p12 文件。

第 3 步:

openssl pkcs12 -export -in aps_developer_identity.pem -out aps_developer_identity.p12 -inkey APSCertificates.pem

系统将多次提示您输入用于在钥匙串(keychain)中导出证书和私钥的密码,并再次提示输入新密码以重新加密所有内容,但最后您将获得文件 aps_developer_identity.p12,其中您需要移动到 Windows,然后将其导入 MMC 中证书管理器的个人和受信任的根部分。然后在 C# 中,当您使用 MoonAPNS 并调用 PushNotification 类时,您为其提供了该证书的路径。还要确保从设备 token 中删除空格。

关于c# - 使用 ASP.NET 服务器添加 iPhone 推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3142095/

相关文章:

ios - Sqlite数据库,滑动删除

android - GCM客户端未收到推送通知

c# - 使用 Partitioner 的 ForEachAsync 上的 ArgumentOutOfRangeException

c# - 寻找最佳线环绕宽度以最大化垂直相同值邻居的数量

ios - 带有核心数据的慢速 UISearchDisplayController

iphone - AVAudioPlayer 类中的错误?

ios - 适用于单独 iPad 和 iPhone 应用程序的 Azure 通知中心配置

javascript - 将通知推送到 JavaScript?

c# - 如何从等值线生成 3-D 表面?

c# - 如何安全地运行不受信任的第三方代码?