我正在开发iOS视频聊天应用程序。我想在有人给我打电话时显示FaceTime应用程序的通知。
目前,我使用推送通知显示横幅,带有消息和自定义声音。
相反,我希望我的应用程序为某个传入事件显示自定义屏幕,例如有人打电话给我。可以使用apple public API吗?
请参阅下面的FaceTime通知屏幕。
Ps.:Skype还使用不同的通知屏幕。
非常感谢, 丹尼尔
答案 0 :(得分:2)
不,推送通知对话框是一个无法自定义的系统对话框。然而,FaceTime是Apple的应用程序,他们可以按照自己的方式自定义,而不是向第三方开发人员开放。
但是,您可以利用iOS 8.0添加" UIMutableUserNotificationCategory"自定义通知中的操作:
示例教程: http://www.thinkandbuild.it/interactive-notifications-with-notification-actions/
答案 1 :(得分:2)
我怀疑它与推送通知有什么关系,实际上你提到的Skype能够在推送通知可用之前完成。
如果您使用后台模式“voip”(ip over ip)创建应用程序,iOS会为您提供一些额外的功能。这将允许应用程序在网络套接字上检测到流量后唤醒并带到前台,并调用applicationWillEnterForeground:
。从那里你可以使用任何视图控制器。
如果您现在认为«嗯,我的应用程序不提供voip,但我会假装这样做以获得优质通知» - 不要尝试它,苹果将拒绝任何应用程序声称是一个voip应用程序只是为了获得无尽的背景时间。
答案 2 :(得分:1)
我不确定他们是怎么做到的,但是当用户在设备锁定和使用中同时接到电话时,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?