iOS 3.0.5最新SDK


(Chen Yu Cui) #1
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:
(void (^)(UIBackgroundFetchResult))completionHandler

你好,app后台运行 收到通知不走这个方法,请问有可能是什么原因?


#2

请阅读该方法要走的条件
https://docs.jiguang.cn/jpush/client/iOS/ios_new_fetures/#ios-7-background-remote-notification


(Chen Yu Cui) #3

好的,我设置好了,也能进入方法了,我在方法里面写了一段播放5秒的音频,代码执行了,但是没听见音频播放啊。

前台运行情况下就好着呢,这是怎么回事?不支持后台运行播放音频吗?


#4

播放音频,如果是固定的声音文件,实际上你可以直接设置sound额


(Chen Yu Cui) #5

我有特殊的需求,推送过来以后间隔5s会让播放那段视频,所以不考虑用自定义消息


#6

这个貌似要有后台播放音频的功能什么的吧


(Chen Yu Cui) #7

非常感谢,我用XCODE真机测试,按HOME键,发推送后能听见音频了。

不过我不明白为什么断开设备与开发软件的连接后,再次启动APP,然后把APP置到后台运行,推送测试,又听不到音频了。

这又是怎么一回事?


(Chen Yu Cui) #8
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:
(void (^)(UIBackgroundFetchResult))completionHandler {
[JPUSHService handleRemoteNotification:userInfo];
if ([[userInfo objectForKey:@"msg_type"] isEqualToString:@"his-add"]) {
        [_player prepareToPlay];
        //4.设置播放次数.-1为循环播放
        _player.numberOfLoops = 1;
        //5.开始播放
        [_player play];
    }
 completionHandler(UIBackgroundFetchResultNewData);
}

可以确定的是这个方法后台运行的时候肯定调用了,因为连接XCODE的时候真机测试是正常的。

不知道为什么断开与XCODE与设备连接音频听不到了,只能听到推送的声音。求解答啊!


#9

这个不太清楚额,这些都是Apple系统控制的。

之前有问道过的一个: