肯定你可以做你自己的C#程序,将APN推到你的客户端(事实上,我自己在很多应用程序)。你必须了解的是,APN的体系结构有两个重要的事实:
- APNs是最好的努力,所以不保证他们将会达到每一次。
- 到达客户端时,APN不能保存大量信息(它们的位数有限,请参阅Apple文档)。
由于这些事实,您可能需要有自己的服务器应用程序(也可以是C#),它将处理将真实信息发送给客户端,并确保数据也到达客户端。不用说,这个服务器应用程序应该坐在真正的服务器上运行。也许由于这个事实,一些开发人员开始寻找第三方解决方案,但是我个人更喜欢不使用第三方,而我自己也做了一切。
除了拥有自己的服务器应用程序,您的iPhone应用程序将需要某种类型的数据库(可能是SQLite3)来存储接收到的消息并在稍后显示它们。
编辑:您的问题在下面的评论答案:
对于第一个问题:“为什么iPhone应用程序必须有SQL数据库”。事实上,这不是必须的,正如我在上面的回答中所说的那样,这是可能的或可能的。要知道您是否需要数据库,这取决于您的应用程序本身的性质。例如,您可能正在向您的客户端推送文本和图像,在这种情况下,您无法将这些数据放入APN的有效内容中。另一种可能性是,即使用户放弃了APN消息,您可能也不希望丢失发送的通知,但当您稍后打开应用程序时,您可能还想再次显示它...因此,应用程序的性质决定了您是否需要服务器与否。
对于第二个问题“你说你不需要通过第三方发送通知”,让我在我的答案中澄清一些事情。作为一名苹果开发者,我不认为苹果服务器是第三方。换句话说,真正的APN只能通过Apple服务器发送,我们无法改变这一事实(我们也不想改变它)。因此,在这一天结束时,真正的APN将被发送到Apple服务器,Apple服务器将会将其交付给实际的客户端。我认为第三方是有他自己的服务器的人,你发送你想要的信息给他,然后他把它发送给Apple服务器。在这种情况下,你和Appl APN服务器之间有人,这就是我称之为第三方的人,这个第三方可以避免,因为你的C#代码可以直接连接到Apple APN服务器,并要求它将消息发送给客户端。我希望我澄清我的观点。
thnx用于该重播...但是还有一件事,为什么iPhone应用程序必须具有SQL数据库?我的意思是,当它得到一个通知,你可以选择打开应用程序,并显示通知的细节,或忽略它,它会消失,不是吗? – gorgi93 2012-07-26 21:37:57
还有一件事...你说你不需要通过第三方发送通知,但是我在几个博客中读到了你可以创建你的服务器,但仍然发送通知给apns服务服务器([link](http:// arashnorouzi .wordpress.com/2011/03/31/send-apple-push-notifications-in-asp-net-part-1 /))那么最新的呢? – gorgi93 2012-07-26 22:03:29