iOS - 仅带声音的推送通知

Posted

技术标签:

【中文标题】iOS - 仅带声音的推送通知【英文标题】:iOS - Push Notification with Sound only 【发布时间】:2015-01-27 14:11:52 【问题描述】:

当我在我的应用程序未激活或关闭时收到推送通知时,我的设备会播放通知声音。当我的应用程序处于活动状态或打开状态时,它不会在收到通知/消息时播放声音。

我希望即使在应用程序处于活动/打开状态时也能播放通知声音。请问有人可以帮我实现吗?

  -(void)HandleNotification:(NSDictionary *)userInfo

    NSMutableDictionary * test = [userInfo objectForKey:@"aps"];
    NSMutableDictionary *alert_msg = [test objectForKey:@"alert"];
    NoteType = [alert_msg objectForKey:@"type"];
    Note_Student_id = [alert_msg objectForKey:@"sid"];

    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"School Link"
                        message:[alert_msg objectForKey:@"title"]
                                                    delegate:self
                                           cancelButtonTitle:@"OK"
                                           otherButtonTitles:nil];
    [alert show];


我的通知如下所示:

  
            aps =     
                alert =         
                    sid = 114;
                    title = fddsf;
                    type = 2;
                ;
                sound = default;
            ;
        

【问题讨论】:

【参考方案1】:

您必须在 HandleNotification 方法中播放声音,只需在里面添加即可。

AudioservicesPlaySystemSound(1004);

【讨论】:

默认通知声音名称是什么 谢谢你的工作,但最后我想要的声音就像通知声音一样,我尝试了iphonedevwiki.net/index.php/AudioServices的许多代码但无法得到这个 试试AudioServicesPlayAlertSound(kUserPreferredAlert) 我认为我之前的评论不起作用。您必须选择其中一种代码,或者创建自己的声音,因为 iOS SDK 不捆绑这些声音文件,您可以在设备上的 /System/Library/Audio/UISounds/ 文件夹中找到它们。但是,我相信这些文件是受版权保护的。【参考方案2】:

试试这个:

NSString* soundName = [[userInfo objectForKey: @"aps"] objectForKey:@"sound"];

if([soundName isEqual: @"default"])
    soundName = @"default_sound_name.mp3";

NSString *path = [[NSBundle mainBundle] pathForResource:soundName ofType:@""];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID);
AudioServicesPlaySystemSound(soundID);
AudioServicesDisposeSystemSoundID(soundID);

您无法访问通知默认声音,因此您应该将其下载到某个地方并将其添加到您的项目中

【讨论】:

以上是关于iOS - 仅带声音的推送通知的主要内容,如果未能解决你的问题,请参考以下文章

IOS 推送通知 - 如何指定通知声音

iOS推送通知自定义声音

IOS推送通知自定义声音不起作用

如何使用 FCM 在 ios 推送通知中播放自定义通知声音

使用 GCM 的 iOS 自定义推送通知声音

ios8 的 Parse 推送通知中没有声音