如果UILocalNotification使用声音设置触发,并且用户点击通知警报上的“取消”,则声音将停止。但是如果用户点击“查看”,则iOS会将通知发送到应用程序,然后声音继续播放。有没有办法从应用程序中取消此声音?一旦发送通知就取消应用程序中的通知不起作用(我没想到,通知已经全部交付),并且因为我没有声音的系统声音ID(我没有首先分配它,我不能调用AudioServicesDisposeSystemSoundID(可以吗?)。
如果用户点击通知提醒的操作按钮,是否可以停止播放UILocalNotification声音?
答案 0 :(得分:2)
它也不会在设备上停止(5.1)
我一直试图解决这个问题,但我无法弄明白。
我实际上是使用此
停止在模拟器上- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (localNotif) {
[[UIApplication sharedApplication] cancelLocalNotification:localNotif];
}
return YES;
}
但它仍未在设备上停止
答案 1 :(得分:1)
显然问题只存在于模拟器(iOS 4.2 sdk)上,而不存在于实际设备上。
答案 2 :(得分:0)
可以在应用程序委托方法中处理如下,如果用户点击通知警报的Action按钮,则会调用以下方法,我们可以取消通知
- (void)application:(UIApplication *)app
didReceiveLocalNotification:(UILocalNotification *)notif {
[[UIApplication sharedApplication]cancelLocalNotification:notif];
}
答案 3 :(得分:0)
最初使用iPhone 4进行测试时遇到了同样的问题。
问题出现从iOS 8开始消失,现在本地通知声音在转换到应用程序后取消时停止。
iPhone4 [iOS - 7.1.2] - 本地通知声音无论在什么位置都在App中播放 iPhone6 [iOS - 8.1.1] - 以编程方式取消时本地通知声音停止
根据我的推断,iOS 8.x中的某个地方似乎存在修复 (唉,我没有找到任何关于此事的文件或发行说明。)
问题对于专注于iOS 8的应用来说不成问题
(如果您取消了本地通知)