我正在开发一个警报应用程序。当应用程序在后台时,本地通知会通知用户警报正在响起并播放声音。但是当应用程序已经在前台时,我不希望播放通知声音,而是播放自定义声音。我找不到如何使通知声音静音,因此两种声音同时播放。有任何想法吗?
更新:我重新启动了我的设备,问题解决了。这可能是一个iOS错误。
我正在开发一个警报应用程序。当应用程序在后台时,本地通知会通知用户警报正在响起并播放声音。但是当应用程序已经在前台时,我不希望播放通知声音,而是播放自定义声音。我找不到如何使通知声音静音,因此两种声音同时播放。有任何想法吗?
更新:我重新启动了我的设备,问题解决了。这可能是一个iOS错误。
当您的应用程序打开并在前台运行时,默认行为是不播放声音并且用户不会收到来自操作系统的任何警报/横幅。您可以通过以下方法接收通知(在您的 AppDelegate 类中):
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
NSLog(@"Do something");
}
从那里你可以触发任何其他方法。
如果在系统传递通知时应用程序处于最前面且可见,则不会显示警报,不会标记图标,也不会播放声音。但是,如果应用程序委托实现了 application:didReceiveLocalNotification: ,则会调用它。UILocalNotification 实例被传递到此方法中,并且委托可以检查其属性或访问 userInfo 字典中的任何自定义数据。