iOS背景不工作

我正在为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];


}

希望这能帮助你.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...