iPhone推送通知urbanairship,phonegap,c#

Posted

技术标签:

【中文标题】iPhone推送通知urbanairship,phonegap,c#【英文标题】:iPhone push notification urbanairship, phonegap, c# 【发布时间】:2012-07-26 18:44:15 【问题描述】:

我想创建一个应用程序,该应用程序将由服务器通知新事件。 (假设我有一家商店,我需要通知我所有的 iPhone 用户我的销售或类似的事情)将下载我的应用程序并运行它然后将其置于后台的用户必须得到通知。我对 ios 和 Objective-C 很陌生,但如果我没有错,这可以通过苹果推送通知来完成。我一直在阅读有关此内容的信息,并发现有一些提供商可以让您发送此通知。我的问题是,有没有办法在 C# 中创建自己的通知“中心”并自己向 iPhone-s 发送通知,如果无法做到这一点,是否有免费提供者?

还有一件事。在objective-c 应用程序中,您必须订阅您的应用程序才能收听此类事件。您可以使用 phonegap 或其他一些技术创建应用程序,以便它可以与通知一起使用吗?你能说在objective-c中嵌入你的应用程序吗(比如objective-c中的web应用程序)

【问题讨论】:

【参考方案1】:

当然,您可以编写自己的 C# 程序,将 APN 推送给您的客户(事实上,我自己在许多应用程序中都这样做了)。您必须了解的是,APN 的架构有两个关键事实:

    APN 是尽力而为,因此不能保证每次都能到达。 APN 在到达您的客户时无法携带大量信息(它们的位数有限,请参阅 Apple 文档)。

由于这些事实,您可能需要拥有自己的服务器应用程序(也可以是 C#)来处理向客户端发送真实信息并确保数据也到达您的客户端。不用说,这个服务器应用程序应该在真实的服务器上运行。可能由于这个事实,一些开发人员开始寻找第三方解决方案,但我个人不喜欢使用第三方,我自己做所有事情。

除了拥有自己的服务器应用程序之外,您的 iPhone 应用程序还需要某种数据库(可能是 SQLite3)来存储接收到的新闻并在以后显示它们。

编辑:在下面的 cmets 中回答您的问题:

对于第一个问题“为什么 iPhone 应用程序必须有 sql db”。事实上,这不是必须的,正如我在上面的回答中所说,这是可能的或有可能的。要知道您是否需要数据库,这取决于您的应用程序本身的性质。例如,您可能正在向您的客户端推送文本和图像,在这种情况下,您无法将此类数据放入 APN 的有效负载中。另一种可能性,即使用户丢弃了 APN 消息,您也可能不希望丢失已发送的通知,您可能希望稍后在他打开应用程序时再次显示它......所以应用程序的性质决定您是否需要服务器与否。

对于第二个问题“你说你不需要通过第三方发送通知”,让我在回答中澄清一些事情。作为一名 Apple 开发人员,我不认为 Apple 服务器是第三方。换句话说,真正的 APN 只会通过 Apple 服务器发送,我们无法改变这个事实(我们也不想改变它)。因此,最终真正的 APN 将被发送到 Apple 服务器,Apple 服务器将致力于将其传递给实际的客户端。我认为第三方是拥有自己服务器的人,您将想要的消息发送给他,然后他将其发送到Apple服务器。在那种情况下,你和 Appl APN 服务器之间会有人,这就是我所说的第三方,这个第三方可以避免,因为你的 C# 代码可以直接连接到 Apple APN 服务器并要求它发送消息到客户端。我希望我澄清了我的观点。

【讨论】:

感谢重播...但是还有一件事,为什么 iPhone 应用程序必须有 sql db?我的意思是当它收到通知时,您可以选择打开应用程序并显示通知详细信息或忽略它,它会消失,不是吗? 还有一件事......你说你不需要通过第三方发送通知,但我在几个博客中读到你可以创建你的服务器但仍然向 apns 服务服务器发送通知(@987654321 @ ) 那是怎么回事?【参考方案2】:

是的,您可以将 APNS 与 phonegap 应用程序一起使用:Receiving push notification on PhoneGap for iOS

关于服务器,除了从头开始做所有事情之外,还有另一种选择。您可以通过 API 使用第三方服务器,似乎 pushwoosh (http://pushwoosh.com) 家伙提供了这个选项(他们也提供 phonegap 集成)

【讨论】:

以上是关于iPhone推送通知urbanairship,phonegap,c#的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 中实现 Urban Airship 的推送通知?

使用 Urban AirShip 和 Rails 3 for iphone 推送通知

Android和iPhone的推送通知[关闭]

Salesforce iPhone 应用程序的推送通知

使用 CodeIgniter cURL 通过 UrbanAirship 发送推送通知

来自 UrbanAirship 的推送通知不适用于 android 中的实时服务器(即使用生产密钥)