我正在为iOS编写VoIP应用程序,但是当App在后台停止接受电话时.当应用程序再次处于活动状态时,所有排队消息开始得到处理.
以下是我所做的
当构建应用程序时,我将IP语音以及音频和AirPlay添加到plist文件.然后我可以看到here,标记与NetworkServiceTypeVoIP的websocket连接.
我没有设置保持活动超时处理程序,因为注册不重要,如果应用程序不会唤醒来接听电话.任何帮助将不胜感激.
应该注意的是,这是我第一个Swift项目,我对iOS平台并不十分熟悉.
解决方法
要允许在后台运行应用程序,您需要启用IP语音IP标志(路径:转到目标 – >功能 – >后台模式).如下所示.
并在您的项目中添加以下代码以支持在后台:
步骤1:声明__block UIBackgroundTaskIdentifier bgTask作为全局变量.
步骤2:在applicationDidEnterBackground中添加以下代码.
- (void)applicationDidEnterBackground:(UIApplication *)application { bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ bgTask = UIBackgroundTaskInvalid; }]; }
步骤3:一旦应用程序进入前台模式,停止后台任务处理程序.
- (void)applicationWillEnterForeground:(UIApplication *)application { // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. [[UIApplication sharedApplication] endBackgroundTask:bgTask]; }
希望这能帮助你.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。