美文网首页iOS开发你需要知道的iOS经验总结
iOS后台收到推送通知播放本地音频

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

作者: wanglei1702 | 来源:发表于2018-04-19 10:18 被阅读541次

记录一个遇到的坑。

需求:收到推送后播放本地音频;
问题: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

相关文章

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

    记录一个遇到的坑。 需求:收到推送后播放本地音频;问题:NotificationServiceExtension不...

  • 使用NotificationServiceExtension +

    一、前言 iOS15之后,不允许推送消息没有 body 值,所以iOS15之前循环发送本地通知来实现后台播放的语音...

  • iOS本地后台音频播放

    1.申请后台权限。Capabilities->Background Modes 2.设置后台播放模式 3.创建播放...

  • 推送通知

    基本介绍 iOS中分两种推送通知:本地推送 和 远程推送 推送通知的作用:就是可以让不在前台运行的app接收到消息...

  • iOS同一应用接收多条通知可以不以只显示最新一条

    iOS推送分为前台推送和后台推送 1.前台推送 如果是前台推送可以在收到通知的时候设置[application s...

  • iOS音频

    iOS中支持的音频播放类型播放音效System Sound Service播放本地音频AVFoundataion播...

  • iOS 通知机制总结

    iOS中提供了2种推送通知 本地推送通知(Local Notification) 远程推送通知(Remote No...

  • iOS-消息推送

    iOS 消息推送包括远程推送通知(Remote Notification)和本地推送通知(Local Notifi...

  • iOS 推送通知及通知扩展

    级别: ★★☆☆☆标签:「iOS 本地推送」「iOS 远程推送」「iOS通知扩展」作者: dac_1033审校: ...

  • 26 - 推送

    iOS中提供了2种推送通知: 本地推送通知(Local Notification) 远程推送通知(Remote N...

网友评论

    本文标题:iOS后台收到推送通知播放本地音频

    本文链接:https://www.haomeiwen.com/subject/znwikftx.html