iOS 后台不工作

标签 ios voip

我正在为 iOS 编写一个 VoIP 应用程序,但是当应用程序在后台时它停止接听电话。当应用程序再次激活时,所有排队的消息开始得到处理。

以下是我所做的。

在构建应用程序时,我将 Voice over IP 以及 Audio 和 AirPlay 添加到 plist 文件中。然后我用 NetworkServiceTypeVoIP 标记 websocket 连接,如您所见 here .

我没有设置保持事件超时处理程序,因为如果应用程序不会醒来接听电话,注册并不重要。任何帮助将不胜感激。

需要说明的是,这是我的第一个Swift项目,对iOS平台不是很熟悉。

最佳答案

要允许您的应用程序在后台模式下工作,您需要启用 IP 语音标记 ON(路径:转到目标 --> 功能 --> 后台模式)。如下所示。

enter image description here

并在您的项目中添加以下代码以在后台支持:

第 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 active state; here you can undo many of the changes made on entering the background.

  [[UIApplication sharedApplication] endBackgroundTask:bgTask];

}

关于iOS 后台不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28028682/

相关文章:

mysql - Asterisk 从数据库中读出值

Android ConnectionService 来电

c++ - 回声抑制库?

ios - 在 Swift 中更新 TableView 中 id 为 ='something' 的行

ios - 通过 AVMutableVideoComposition 和 CAAnimation 输出的黑色视频

android - 我的 Android 应用程序上的 VOIP

iOS:当应用程序在后台时如何保持 TCP 套接字和 NSNetService 工作

ios - 为 iOS 添加 Google_analytics 尝试了很多方法都不起作用?

ios - 有没有办法检索存储在 iPhone 中的 "Frequent Locations"?

ios - 加载图像时出现 SDWebImage 错误