自定义推送通知屏幕

Custom push notification screen

我正在开发 iOS 视频聊天应用程序。当有人给我打电话时,我想像 FaceTime 应用程序那样显示通知。

目前我使用显示横幅、消息和自定义声音的推送通知。

相反,我希望我的应用程序为传入事件显示自定义屏幕,例如有人给我打电话。这可能使用 apple public API's 吗?

请查看下面的 FaceTime 通知屏幕。

Ps.: Skype 也使用不同的通知屏幕。

非常感谢, 丹尼尔

facetime screen

否,推送通知对话框是系统对话框,无法自定义。不过FaceTime是苹果的应用,他们可以按照自己的方式定制,不对第三方开发者开放。

但是您可以利用 iOS 8.0 添加 "UIMutableUserNotificationCategory" 自定义通知中的操作:

https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIMutableUserNotificationCategory_class/index.html

示例教程: http://www.thinkandbuild.it/interactive-notifications-with-notification-actions/

我不确定他们是怎么做到的,但当用户在设备锁定和使用时接到电话时,Skype 设法获得自定义通知。

http://blogs.skype.com/2014/09/22/skype-5-5-for-iphone-answer-skype-calls-in-an-instant/

编辑:看起来 IOS8 添加了交互式通知 API。这可能是您的下一个问题:How do I make interactive notifications in iOS 8 app?

我怀疑它与推送通知有任何关系,事实上你提到的 Skype 能够在推送通知可用之前做到这一点。

相反,如果您创建具有后台模式 "voip"(IP 语音)的应用程序,iOS 会为您提供一些额外的功能。一旦在网络套接字上检测到流量并调用 applicationWillEnterForeground: ,这将允许应用程序唤醒并带到前台。从那里你可以使用任何视图控制器。

如果您现在认为“嗯,我的应用程序不提供 voip,但我会假装这样做以获得更好的通知”— 不要尝试,苹果将拒绝任何声称是 voip 应用程序的应用程序只为获得无尽的后台时间。