app后台运行,收到推送走哪个方法了?


#1

我这边锁屏状态收到推送,需要在收到推送消息的情况加一个语音播报,app打开运行可以收到语音播报,就是在后台和锁屏状态下只收到推送消息,没有语音播报,问下在哪个方法加语音播报的代码了?


#2

iOS ?

1、推送 background 消息

2、自定义声音

3、使用Service Extension 功能
https://docs.jiguang.cn/jpush/client/iOS/ios_new_fetures/#ios-10-new-features


#3

需要在不点击通知栏的情况下,可以获取到消息内容,可以推送 Background Remote Notification。

我这边app在后台运行 这句话理解有问题。 当注册了Backgroud Modes -> Remote notifications 后,notification 处理函数一律切换到下面函数,后台推送代码也在此函数中调用。 请问下后台推送代码 指的是哪些了?


#4
MPVolumeView *volumeView = [[MPVolumeView alloc]init];
    volumeView.showsRouteButton = NO;
    //默认YES,这里为了突出,故意设置一遍
    volumeView.showsVolumeSlider = YES;
    volumeView.hidden = NO;
    [volumeView sizeToFit];
    [volumeView setFrame:CGRectMake(0, 0, 200, 20)];
    volumeView.showsVolumeSlider = NO;
    volumeView.center = CGPointMake(-550,370);
    [self.window addSubview:volumeView];
    [volumeView userActivity];
    AVAudioSession *session = [AVAudioSession sharedInstance];
    [session setActive:YES error:nil];
    [session setCategory:AVAudioSessionCategoryPlayback error:nil];
    AVSpeechSynthesizer*speechSy = [[AVSpeechSynthesizer alloc] init];//发声器
    AVSpeechUtterance*utterance3 = [[AVSpeechUtterance alloc] initWithString:str];//给合成器添加发生器,让其发音
    utterance3.voice=[AVSpeechSynthesisVoice voiceWithLanguage:@"zh-CN"];

可能我使用的这个播放语音的方法不执行后台运行


#5

这个不太确定了,可能是之前写的不太通顺, App 处于后台收到消息会走这个方法,API 后台发消息和官网推送的消息也一样走这个方法等,大概是这个意思,没有其他特别的含义了。

在社区总结链接中给了我们测试的几种情况下,各个获取消息的方法是怎么走的顺序,可以直接参考那个。


#6
  • (void)application:(UIApplication *)application
    didReceiveRemoteNotification:(NSDictionary *)userInfo
    fetchCompletionHandler
    App 处于后台收到消息会走这个方法,API 后台发消息和官网推送的消息也一样走这个方法
    问下是这个方法吗? 我打断点调试没有走这个方法,还是app运行到后台断点无效?

#7

你好 可以实现后台运行了,还有个问题我想请教下,content-available 我需要设置这个在极光推送发送的时候,我在代码里面要不要设置了?


#8

你好 请问app进程被杀死了,还可以收到推送执行语音播报吗?


#9

你好 可以实现后台运行了,还有个问题我想请教下,content-available 我需要设置这个在极光推送发送的时候,我在代码里面要不要设置了?


#10

这句话不通顺,这个字段在推送的时候,需要设置,收到消息才会走对应的方法

杀死后不会获取到消息内容,杀死后需要点击消息才能取到内容,这个情况应该可以用Service Extension 功能去实现吧。


#11

问下这个设置是后台服务代码里面设置吗?还是我在应用里面设置了?


#12

推送消息的时候,自然是后台服务端代码设置