为当地通知添加振动背景

时间:2018-04-03 10:38:36

标签: objective-c xcode uilocalnotification

我正在向我的应用添加视频聊天,并在应用处于后台时使用PushKit获取推送通知。我无法使用CallKit视频,因为它搞乱了我使用的SDK,所以我添加了一个从PushKit委托方法启动的本地推送通知。

我想知道Whatsapp如何通过视频通话完成这项工作。目前他们正在显示推送通知,但我无法识别。推动是通过两次振动激发的,两秒后有一个新的推动与第一个通知重叠,你可以感受到另外两个振动,依此类推,直到你回答。他们如何做到这一点,因为你可以反复添加振动,他们如何删除通知并在后台建立一个新通知,因为NSTimer不在后台工作。如果我添加[[UIApplication sharedApplication] beginBackgroundTaskWithName:expirationHandler:],那么我可以使用计时器180秒,但前提是应用程序处于活动状态。

所以真正的问题是如何添加一个可以重复几次的本地通知并为其添加振动?

1 个答案:

答案 0 :(得分:0)

您可以在将来创建通知,当它被调用时取消所有之前的通知并重新安排,直到您满意为止。

  UILocalNotification* localNotification = [[UILocalNotification alloc] init];
                        localNotification.alertBody = body;
                        localNotification.timeZone = [NSTimeZone defaultTimeZone];
                        localNotification.fireDate = [NSDate new]; //<-Set the date here in 10seconds for example
 [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

然后在应用程序didReceiveLocalNotification:(UILocalNotification *)通知:

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
    application cancelAllLocalNotifications;
}