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

这是概述。

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

我想要的是一些辅导工作的过程。 然后,我将发布一个iPhone项目和一个ASP.NET Web应用程序的通用代码,以及一步一步的指示,以便其他人可以学习。

这是我的理解:

  1. 申请APNS证书并将其添加到钥匙串。 (不知道如何把这个到ASP.NET)
  2. 让iPhones注册registerForRemoteNotificationWithTypes,将值发送到您的服务器,并存储在一个数据库。 似乎这个代码注册应该很容易,但我找不到一个好的示例。 (将值发送到ASP.NET服务器没有问题。)
  3. 您的服务器应用程序会创build一个有效负载string,进行JSON编码,然后使用保存在数据库中的设备令牌,将它们发送到APNS服务器(或者可以用于组)。

所以要开发这个补充,下面是这些部分:

  • iPhone注册码

  • 将iPhone注册码发送到服务器并保存到DB的代码(这很容易,我已经有了这些)。

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

  • 另外,有效载荷是否可以作为回答服务器结果的答案?

先谢谢您的帮助。 我会把这个转交给别人的教程。

这让我永远都不知所措,但是我终于从人们留下的一些小线索中拼凑出来了。 您需要下载在开发者平台上注册的APPID的证书。 该证书必须转换成在Windows上使用的P12格式。 UNIX中的这些命令终于为我做了:

步骤1:

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导出的文件。 这很关键,您必须将门户中的证书导入钥匙串。 在“我的证书”中find它,打开显示三angular形并突出显示证书和私钥,然后右键单击并导出它们。 给他们一个密码,并保存到一个p12文件。

第3步:

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

系统会提示您几次input您在Keychain中导出证书和私钥所使用的密码,并再次提示新密码重新encryption,但最终您将获得所需的文件aps_developer_identity.p12移动到Windows,然后将其导入到MMC中证书pipe理器的个人和受信任根部分。 然后在C#中,当您使用MoonAPNS并调用PushNotification类时,您将为其指定一个证书path。 另外请确保从设备标记中删除空格。

所以对于C#推部分theres一个开放源码项目,你可以使用,它的简单,并有一些示例代码如何使用库来发送推通知这里是一个链接C#推送通知项目

基本上所有你需要做的是从苹果获得推送证书,然后把它放到你的项目中,并在C#项目中打开它(你可以查看示例,在哪里做的事情将是显而易见的)…

iPhone的一部分非常微不足道,有很多例子

我会推荐一个在线推送解决scheme。 我已经使用了https://parse.com/products/push-免费且容易与REST api集成。

老答案:
我会推荐PushSharp 。

我在Moon-APNS上遇到了一些问题,我尝试改用PushSharp,并在5分钟内运行。 PushSharp甚至在同一个包中支持Android和Windows Phone推送消息。 它可以作为一个NuGet包。

可悲的PushSharp是只有.NET 4.0。 作者也没有3.5的计划。 这是我的要求,因为服务器提供商只允许3.5。 所以我不得不和月亮APNS去,我还没有看到它的工作。 但是我今天就实施了,明天我的朋友们会testing一下。 Moon-APNS也是.NET 4.0,但很容易将其设置为3.5。 只要在3.5下载依赖库,包括那些和中提琴你很好去。