iOS UILocalNotification用于输入sip通知

时间:2014-01-16 05:18:00

标签: ios objective-c uilocalnotification

获取sip通知后,当app在后台时,如何使用UILocalNotification向用户显示该内容。

应用Background mode is ->voip,它是always alive in background

只是在后台进行sip调用后无法显示通知。

1 个答案:

答案 0 :(得分:0)

说出你的问题有点困难,但我可以告诉你,UILocalNotification将完全按照Apple's documentation中“本地和推送通知编程指南”>中描述的那样呈现给用户。 “处理本地和远程通知”。具体做法是:

  1. 如果您的应用在后台或已被终止,iOS将使用创建UILocalNotification时定义的属性为您显示本地通知。配置。
  2. 如果您的应用位于前台,iOS将不会自动显示您的通知 - 您必须实施UIApplicationDelegate的-application:didReceiveLocalNotification:并在您认为合适时提供(或不提供)通知。
  3. 不要忘记忘记使用-scheduleLocalNotification:方法实际安排你的UILocalNotification - [UIApplication sharedApplication]。只是创建UILocalNotification将不会做任何事情。

    AND,我认为你需要使用UIApplication的-registerForRemoteNotificationTypes:来进行本地通知。

    与本地通知无关,因为我们也在努力处理VOIP背景,请注意,仅仅因为您将背景模式设置为VOIP,并不意味着您的应用程序将始终运行。以下任何一项都将导致iOS终止您的应用:

    • 您使用UDP作为VOIP套接字。 iOS似乎不支持使用UDP进行后台处理,只支持TCP。
    • 如果您的VOIP插座连接在300秒内收到超过30个“唤醒”。
    • 如果您的VOIP套接字已断开连接,则在尝试重新连接时必须请求后台执行时间。但是,如果您在iOS提供的后台处理时间后无法重新连接,则该应用程序将被终止。

    因此,当您测试本地通知时,您应该确认(通过跟踪或其他方式)您的VOIP信令通道在后台仍然存在。

    总之,你有很多调查&排除故障:)