iOS后台收到推送通知播放本地音频

记录一个遇到的坑。

需求:收到推送后播放本地音频;
问题:NotificationServiceExtension不工作;
坑:音频文件没有添加到NotificationServiceExtension target.

在NotificationServiceExtension target的didReceiveNotificationRequest:withContentHandler:方法中添加一下代码,以播放本地音频文件:

SystemSoundID soundID;
    NSString *path = [[NSBundle mainBundle] pathForResource:@"my_sound_file.wav" ofType:nil];
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &soundID);
    AudioServicesPlaySystemSound(soundID);
    /*AudioServicesPlaySystemSoundWithCompletion*/
    AudioServicesPlayAlertSoundWithCompletion(soundID, ^{
            self.contentHandler(self.bestAttemptContent);
    });

结果发现执行下面一行代码,

NSString *path = [[NSBundle mainBundle] pathForResource:@"my_sound_file.wav" ofType:nil];

从bundle里获取音频文件路径时导致NotificationServiceExtension"退出"(exit with 0),结果NotificationService类对收到通知的处理无效,系统显示默认的通知内容。

处理方法:发现音频文件只添加到了主APP的target,但是没有添加到NotificationServiceExtension target。两个target全部勾选就可以了。


1524104181929.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1,背景 最近项目集成客服系统涉及到推送消息, app 进行整体消息改版,所有我把项目中的推送相关的代码和逻辑整合...
    崔可一阅读 2,637评论 5 8
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,224评论 0 15
  • 作者:Gabriel Theodoropoulos,原文链接,原文日期:2016-01-27译者:bestswif...
    梁杰_numbbbbb阅读 1,347评论 1 14
  • “推送通知?喔,不!”。是的,这就是我被叫去实现一个 iOS 应用中的推送通知功能时,脑海中闪过的第一念头,而且我...
    王小宾阅读 2,857评论 0 2
  • 我老家是南方的,很小的时候,吃饭基本上顿顿米饭馒头,再加上家里做的面不好吃,对面始终有抵触的心态。抵触到什么程度呢...
    Masai阅读 3,718评论 60 32

友情链接更多精彩内容