从Mac向iPhone/iPad/iPod touch发送通知

3

我目前销售一款只适用于Mac的生产力工具,它使用视觉和音频通知来提醒用户特定事件的发生。

我已经开始计划该Mac程序的iPhone和iPad版本,并希望能够从Mac向iPhone提供通知服务,例如,iPhone可以振动代替Mac播放音频提示等。

到目前为止,我在iPhone开发方面做得很少,而且我不太确定各种推送通知服务是如何工作的。这个任务容易完成吗?还是会有一些挑战?

以下是一些可能相关的信息:

  • iPhone和Mac版本之间将有基于Dropbox的同步功能,因此也有可能“分享”一个文件来提示某些操作。

  • 作为第一步,没有“后台”通知并要求iPhone客户端运行可能是可以接受的。

我应该预计会遇到哪些认证问题呢?

1个回答

3
您需要在应用程序和服务器中实现APNs(Apple Push Notification Service)。
以下是一些澄清:
1. 您需要一个服务器来在用户的Mac/PC和他们的iDevices之间传递消息。 2. 您的服务器将决定何时向哪个用户的设备推送什么类型的通知。 3. 然后,您的服务器向苹果的APNs服务器发送消息,该服务器将代表您推送该消息。 4. 当APNs消息到达用户设备时,即使您的应用程序处于后台或关闭状态,也完全可以。操作系统会引导用户打开您的应用程序。 5. 如果用户在设备上明确禁用了您的应用程序的APNs功能,或者如果用户在到达APNs警报时取消了它,则如果原始应用程序保持在后台或尚未打开,则不会启动您的应用程序。 6. 当您的应用程序首次启动时,操作系统会要求用户在其设备上启用(正如您所说,身份验证)您的应用程序的APNs功能。
对于经验丰富的iOS开发人员或PHP开发人员来说,这并不是一个具有挑战性的任务,因为苹果的文档和API非常简单明了。但是,在服务器端进行配置可能有点棘手。
我相信Stack Overflow已经有大量关于如何在iOS应用程序中启用APNs的信息。您需要做的就是在提问时具体说明问题并先进行搜索。
希望能对您有所帮助。

谢谢帮忙。根据我刚刚阅读的关于APN的内容,似乎不可能直接建立这样的路径:我的Mac应用程序 -> APN -> 我的iOS设备,而是需要在某个地方运行一个Web服务器,并且经过以下路径:我的Mac -> 我的Web服务器 -> APN -> 我的iOS设备,而且没有办法在没有独立开发者运行的Web服务器的要求下运行通知。这样对吗?还是我漏掉了什么? - Frank R.
你说得对。你需要一个独立的服务器来协调你的PC/Mac客户端和苹果的APNs服务器之间的通信,流程如下:你的PC/Mac客户端 <=> 你的服务器 => 苹果APNs服务器 => 你的iOS客户端。 - Di Wu
我认为这不再是真的了。使用CloudKit,您可以在Mac上创建CKRecord,并在iPhone上接收此创建的推送通知,而无需任何服务器。 - Damiaan Dufaux

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接