美文网首页推送iOS新手学习iOS Developer
iOS极光推送,后台和锁屏状态下播放推送过来的信息

iOS极光推送,后台和锁屏状态下播放推送过来的信息

作者: 190CM | 来源:发表于2017-03-05 21:05 被阅读2911次

之前已经测试过这个方案了,可行但是仅限于测试,本身并未尝试上线,因为该需求已经改了,但是一直比较忙,现在贴上
后台持续存活的方案
找到的这个方案的实现原理就是后台定位(猜测审核很大程度过不去)

首先,接到公司的设计,接入极光推送,这当然很简单,我也十分迅速的完成了,但是当产品看的时候又提出了新的设计,设计方案如下几点。

  1. 在登录状态下,可以接收推送的通知。
  2. 在退出登录时,不可以接收推送的通知。
  3. 在前台状态下,接收到通知播报推送内容,并打印内容。
  4. 在后台模式下,接收到通知播报推送内容,并打印内容。
  5. 在锁屏模式下,接收到通知播报推送内容,并打印内容。
  1. 我首先解决的是1、2问题,因为android文档中,直接给出了恢复和暂停的代理方法,但是iOS端缺没有,实现的方案只能是接入别名/Tag来对指定的设备来推送
    <pre>
    登录成功时->设置别名@"alias"
    [JPUSHService setTags:nil alias:@"alias" fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {
    NSLog(@"rescode: %d, \ntags: %@, \nalias: %@\n", iResCode, iTags , iAlias);
    }];
    退出登录时->设置别名@""
    [JPUSHService setTags:nil alias:@"" fetchCompletionHandle:^(int iResCode, NSSet *iTags, NSString *iAlias) {
    NSLog(@"rescode: %d, \ntags: %@, \nalias: %@\n", iResCode, iTags , iAlias);
    }];
    </pre>

  2. 第一个问题很好解决,但是在解决第二个问题时,首先需要将文字转成声音,所以我使用了。

文本转语音技术, 也叫TTS, 是Text To Speech的缩写. iOS如果想做有声书等功能的时候, 会用到这门技术.
iOS7之后才有该功能
需要 AVFoundation 库
AVSpeechSynthesizer: 语音合成器, 可以假想成一个可以说话的人, 是最主要的接口
AVSpeechSynthesisVoice: 可以假想成人的声音
AVSpeechUtterance: 可以假想成要说的一段话
// 简单实现播放
AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:userInfo[@"aps"][@"alert"]];
AVSpeechSynthesizer *synth = [[AVSpeechSynthesizer alloc] init];
[synth speakUtterance:utterance];

3 其实做到现在基本可以使先前个需求了,但是我们还同时需要在后台的时候也播放语音怎么做呢?

3.1 首先要打开Remote notifications,并加入content-available: 1 这个参数.
3.2 如下图:
QQ20170305-0@2x

3.3

//后台播放音频设置  
AVAudioSession *session = [AVAudioSession sharedInstance];    
[session setActive:YES error:nil];    
[session setCategory:AVAudioSessionCategoryPlayback error:nil];

然后就可以真机测试了,这个实现了后台播放语音,但是iOS规定600s后程序会被挂起,到时还是不能够播放的,我开始寻找在后台一直偷偷运行的方案,�后台播放无声的音乐,�但是�审核没过,我建议还是在iOS 10之前的版本还是播放固定的声音在iOS 10之后播放语音播报的方案。

注意事项:这张图是极光问答社区相关人员给出的 QQ20170305-1@2x

不保证成功,所以出现收不到,丢单也是正常的范围。

这期就是解决我题目的问题,后续我会整理一下推送的相关特性,方便大家和我查找使用,如果有iOS相关打印的问题也可以给我留言。如果喜欢请给我一个喜欢,谢谢!不会排版,多多见谅!

相关文章

网友评论

  • sennnnn:大神,您好可以加下我qq494313298吗,后台推送 播报不出声音
  • 8ac3b711dcdb:打印机的连接在长时间在后台会断连是要怎么处理
    190CM:我不知道你的情况,我的是网口打印机,需要打印是直接socket连接就可以,打完就断开了
  • 子先来:你好,我现在也是要做播放推送消息内容,但是我打开audio那个后台开关审核被拒了,原因是我的app没有音频输出,请问您最后是怎么做的后台播放呢?
    190CM:@子先来 好久没上了,这个文章比较老了 我也一直没更新 建议你使用iOS10之后的推送 是可以推送声音 视频和 文件的 在扩展里面可以操作 iOS10 以下建议播放固定语音,如果你是企业版 可以直接用Voip比较简单,如果你还没有解决的话 我可以去给你找找资料,我有时间会更新上
    子先来:@ZWP320 没有解决 看别的app也是有的能有的不可以。最后iOS10以上使用UINotificationserviceExtention播放,10以下的就没有了。请问关于这个你解决了吗?
    赵赵赵Mr:我也有这个审核被拒的问题,苹果说我app没有包含后台语音播放音频的功能,我录了视频过去,又说这个功能可以通过本地通知实现,但是本地通知那个通知声音是音频文件,我要的是直接通过字符串播放出声音的,我想问你这个问题是怎么解决了,跟苹果沟通好累,一天一份邮件(坑爹的是公司的另一个app也是有这个功能,审核可以通过,好坑爹)

本文标题:iOS极光推送,后台和锁屏状态下播放推送过来的信息

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