合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
发送通知扩展消息:当应用进程不在前台时,Push Kit会将消息内容传递给通知扩展进程,您可以在该进程中自行完成业务处理(例如:语音播报、消息内容解密等)后,返回自定义消息内容,Push Kit将弹出通知提醒。您需要在10秒内返回消息内容,否则Push Kit将默认展示原有的消息内容。
根据日志可知:



但后续音频一直在播放,直到16:58:54.420。


结合代码可知,在onReceiveMessage()中收到消息后,语音播报逻辑未执行完,直接返回了处理后的消息。导致RemoteNotificationExtensionAbility提前结束了生命周期,使得语音播放没有播放完就系统冻结,进程挂起。

语音播报代码时序问题:语音播报使用异步方法执行,导致扩展通知子进程提前结束。音频处理在子进程结束后,被系统冻结无法播放。
使用async/await处理语音播报操作,确认音频播放完成后再在onReceiveMessage()中返回处理后的消息,确保RemoteNotificationExtensionAbility没有提前退出。
Q:同时收到多条扩展消息通知后,语音播放消息内容超过1分20秒终止怎么处理?
A:检查是否是确认音频播放完成后再在onReceiveMessage()中返回的通知消息,保证播放的时序。
Q:播放长语音通知扩展消息后,发现应用通知角标未发生变化。
A:请检查原始消息体是否包含角标信息,原因如下:RemoteNotificationExtensionAbility子进程存活的时间是10秒,需要在10秒内返回消息内容,否则Push Kit将默认展示原有的消息内容。语音时间过长导致播放超过10秒时,如果原始的消息体中不含角标消息,则返回的通知也不含角标信息。