【问题标题】:Add iPhone push notification using ASP.NET server使用 ASP.NET 服务器添加 iPhone 推送通知
【发布时间】:2011-03-09 16:44:52
【问题描述】:

这是概述。

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

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

这是我的理解:

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

因此,要开发附加功能,请查看以下部分:

  • iPhone注册码

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

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

  • 另外,有效载荷是否可以是一个选择题,可以通过将结果发送回服务器来回答?

提前感谢您的帮助。我会将其转为其他人的教程。

【问题讨论】:

  • 嗨@RickLeinecker,您是否曾经能够为 iPhone 项目和 ASP.NET Web 应用程序创建通用代码以及分步说明?如果您能提供给其他人,那就太好了。

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


【解决方案1】:

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

基本上你要做的就是从苹果那里得到推送证书,然后把它放到你的项目中,然后在C#项目中打开它(你可以查看示例,在哪里做就很明显了)...

iphone 的部分相当琐碎,而且有大量的例子

【讨论】:

【解决方案2】:

我花了很长时间才弄明白,但我终于从人们留下的小线索拼凑起来。您需要下载您在开发者门户上注册的 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

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

【讨论】:

    【解决方案3】:

    我会推荐一个在线推送解决方案。 parse.com 关闭后,我使用了https://onesignal.com/ - 免费且易于与 REST api 集成。

    旧答案:
    我使用过https://parse.com/products/push - 免费且易于与 REST api 集成。

    旧答案:
    我会推荐PushSharp

    我在使用 Moon-APNS 时遇到了一些问题,我尝试更改为 PushSharp,它在 5 分钟内就可以使用。 PushSharp 甚至支持 Android 和 Windows Phone 在同一个包中推送消息。它以 NuGet 包的形式提供。

    【讨论】:

    • PushSharp 非常容易上手,并且有一个分步教程可帮助您跳过所有的 iOs 箍。
    • 还有很多奇怪的问题! :)
    • 是的,PushSharp 一直挂着
    【解决方案4】:

    遗憾的是,PushSharp 仅适用于 .NET 4.0。作者也没有 3.5 的计划。这对我来说是一个要求,因为服务器提供商只允许 3.5。所以我不得不选择Moon-APNS,我还没有看到它工作。不过我今天才实现,明天朋友们测试一下。 Moon-APNS 也是 .NET 4.0,但很容易将其设置为 3.5。只需下载 3.5 中的依赖库并包含这些和 viola 即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多