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

C# 使用ASP.NET服务器添加iPhone推送通知,c#,iphone,push-notification,apple-push-notifications,C#,Iphone,Push Notification,Apple Push Notifications,以下是概述 我需要向iPhone应用程序添加推送通知。服务器端是c#中的ASP.NET 我想要的是在整个过程中得到一些指导。然后,我将发布iPhone项目和ASP.NET web应用程序的通用代码以及分步说明,以便其他人可以学习 以下是我的理解: 申请APNS证书并将其添加到密钥链。(不确定如何将其带到ASP.NET) 让iPhone向registerForRemoteNotificationWithTypes注册,将值发送到服务器,并存储在数据库中。似乎这个代码注册应该很容易,但我找不到一个好

以下是概述

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

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

以下是我的理解:

  • 申请APNS证书并将其添加到密钥链。(不确定如何将其带到ASP.NET)
  • 让iPhone向registerForRemoteNotificationWithTypes注册,将值发送到服务器,并存储在数据库中。似乎这个代码注册应该很容易,但我找不到一个好的例子。(将值发送到ASP.NET服务器没有问题。)
  • 您的服务器应用程序使用存储在数据库中的设备令牌为每一部iPhone(也可以是组)创建有效负载字符串、进行JSON编码、发送到APNS服务器
  • 因此,为了开发附加功能,以下是几部分:

    • iPhone注册码

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

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

    • 此外,有效负载是否可以是一个多选问题,并将结果发送回服务器

    提前谢谢你的帮助。我将把它交给其他人的教程。

    因此对于C#push部分,有一个开源项目,您可以使用它,它很简单,并且有一些示例代码,说明如何使用这些库来发送推送通知。这里是一个链接

    基本上,你所要做的就是从苹果公司获得推送证书,然后把它放在你的项目中,在C#项目中打开它(你可以查看这个例子,在哪里做它将是显而易见的)


    iphone的一部分非常琐碎,还有大量的例子

    我花了很长时间才弄明白,但我最终还是从人们留下的小线索中拼凑了出来。您需要下载在开发人员门户上注册的APPID的证书。该证书必须转换为P12格式才能在Windows上使用。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密钥链导出的文件。这是至关重要的,您必须将证书从门户导入密钥链。在“我的证书”中找到它,打开“披露三角”,突出显示证书和私钥,然后右键单击并导出它们。给他们一个密码并将其保存到p12文件中

    步骤3:

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

    系统会多次提示您输入用于导出密钥链中的证书和私钥的密码,并再次提示您输入新密码以对其进行重新加密,但最终您将获得文件aps_developer_identity.p12,您需要将其移动到windows,然后将其导入MMC中证书管理器的Personal和Trusted Root部分。然后在C#中,当您使用moonans并调用PushNotification类时,您会给它一个指向该证书的路径。还要确保从设备令牌中删除空格。

    我将推荐一种在线推送解决方案。 关闭parse.com后,我使用了免费且易于与RESTAPI集成的api

    旧答案:
    我已经使用了免费且易于与RESTAPI集成的软件

    旧答案:
    我推荐你

    我在月球APN上遇到了一些问题,我试着换成PushSharp,它在5分钟内就工作了。
    PushSharp甚至支持Android和Windows Phone在同一软件包中推送消息。它还可以作为NuGet软件包提供。

    仅适用于.NET 4.0。作者也没有3.5的计划。这是我的一个要求,因为服务器提供商只允许3.5版本。所以我不得不使用月球APN,我还没有看到它工作。但我今天刚刚实现了它,明天我的朋友们将测试它。Moon APNS也是.NET4.0版本,但很容易将其设置为3.5版本。只需下载3.5中的依赖项库,并将它们和viola包含在内即可。

    project现已弃用。还有其他建议吗?同一位作者现在正在研究PushSharp-PushSharp非常容易使用,并且有一个逐步的教程,可以跳过所有的iOs环。还有很多奇怪的问题!:)是的,PushSharp一直在挂着Hi@RickLeinecker,你有没有为iPhone项目和ASP.NET web应用程序创建过通用代码,以及逐步的说明?如果你能为其他人提供,那就太好了。