自定义推送通知屏幕

时间:2015-03-11 18:41:07

标签: ios cocoa-touch apple-push-notifications

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

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

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

请参阅下面的FaceTime通知屏幕。

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

非常感谢, 丹尼尔

facetime screen

3 个答案:

答案 0 :(得分:2)

不,推送通知对话框是一个无法自定义的系统对话框。然而,FaceTime是Apple的应用程序,他们可以按照自己的方式自定义,而不是向第三方开发人员开放。

但是,您可以利用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/

答案 1 :(得分:2)

我怀疑它与推送通知有什么关系,实际上你提到的Skype能够在推送通知可用之前完成。

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

如果您现在认为«嗯,我的应用程序不提供voip,但我会假装这样做以获得优质通知» - 不要尝试它,苹果将拒绝任何应用程序声称是一个voip应用程序只是为了获得无尽的背景时间。

答案 2 :(得分:1)

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

Device Locked Incoming Call

In Use Incoming Call

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?