这是概述。
我需要向 iPhone 应用程序添加推送通知。服务器端是 c# 中的 ASP.NET。
我想要的是一些指导来完成整个过程。然后,我将发布一个 iPhone 项目和一个 ASP.NET Web 应用程序的通用代码以及分步说明,以便其他人可以学习。
这是我的理解:
- 申请APNS证书并添加到keychain。 (不确定如何将其引入 ASP.NET)
- 让 iPhone 注册 registerForRemoteNotificationWithTypes,将值发送到您的服务器,并存储在数据库中。看起来这个注册代码应该很容易,但我找不到好的示例。 (将值发送到 ASP.NET 服务器没有问题。)
- 您的服务器应用程序创建一个有效负载字符串,进行 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/