问题标签 [ios-background-mode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
565 浏览

ios - iOS applicationWillResignActive 任​​务在应用再次激活之前不会执行

我正在尝试在应用程序进入后台之前将applicationWillResignActive()一些数据同步到我的数据库。Firestore

当我从中调用我的上传功能时,applicationWillResignActive()它会运行,但Firestore在下次应用程序变为活动状态之前没有添加任何数据。

当我出于测试目的而不是从我ViewControllers的一个数据中运行相同的功能时,数据会立即添加到Firestore.

我也试过从 调用函数applicationDidEnterBackground(),我试过在它自己的DispatchQueue. 但结果是一样的。

当用户即将离开应用程序并让它正确执行数据库同步时,如何运行此功能?

处理数据库同步的函数;

0 投票
1 回答
4933 浏览

react-native - 当应用程序在本机反应中被杀死时如何调用API?

我想在 App 被杀时在后台调用 API 并在 AsyncStorage 中设置数据。我使用了以下库,但不适合我。

反应本机背景任务

反应本机背景提取

我想在没有时间安排的情况下调用 API。以上都使用时间调度。

请帮我。

0 投票
1 回答
97 浏览

ios - AudioQueueServices 在后台播放不起作用

使用 AudioQueueServices 播放流式 MP3 文件,当应用切换到后台时播放器停止。

我有:

  • 在“功能”项目设置页面的“背景模式”面板上,我打开了“音频、AirPlay 和画中画”和“背景获取”
  • 在“信息”页面的“自定义 iOS 目标属性”下,添加了“必需的后台模式”节点,其中包含“应用程序使用 AirPlay 播放音频或流式传输音频/视频”和“应用程序从网络下载内容”条目

  • 在播放器模块的初始化代码中,我包含以下调用:

    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: &error];

    完成时不会发出错误信号。

根据我的日志,一旦应用程序切换到后台,我就停止接收任何回调,因此播放几乎立即停止。我需要做什么才能让它继续?

0 投票
1 回答
204 浏览

ios - 当应用程序快速进入后台时,如何使用 AVLayer 继续将视频作为 VideoView 层播放

我正在使用 AVPLayer 在 vi​​deoView 中播放视频,但是当应用程序进入后台模式并再次打开应用程序时,视频会暂停。

0 投票
1 回答
326 浏览

ios - 用户重启手机后如何继续定位?

我的应用程序需要将位置数据发布到我的后端。我已将位置权限设置为并always设置pausesLocationUpdatesAutomatically为并且需要继续跟踪手机位置,即使应用程序处于后台或手机重启后也是如此。falseCLLocationManager

当应用程序处于后台模式时,我能够使其工作。但是当手机重新启动时它会停止工作。

我怎样才能做到这一点?

顺便说一句,我知道

0 投票
1 回答
69 浏览

ios - iOS 音乐从后台开始

我正在考虑一个 iOS 警报应用程序。在闹钟响起时,我想播放来自 Apple Music 或其他来源的自定义音乐。

不幸的是,应用程序后台操作非常严格,通知只允许播放捆绑的音乐文件。有没有办法通过使用后台任务或其他方式来实现我的目标?

0 投票
1 回答
207 浏览

ios - 后台定位服务在一段时间内停止工作

我正在开发一个 iOS 应用程序,用户可以将他们的旅行路线保存到服务器(通过 API 发布他们的位置)。我正在努力解决的问题是有几个用户报告说他们保存的路线在旅途中被打断了。具体来说,当用户在地图上查看他们保存的路线时,有一部分路线只是一条直线,因为该路线部分的位置没有发送到服务器,或者只是因为当时设备无法接收位置。奇怪的是,其余的路线记录正常,所以位置服务似乎停止工作了一段时间,但之后又重新开始,所以我的应用程序可以很好地记录它。

而最令人沮丧的是,我无法重现这个问题。

以下是用户报告的问题的情况:
- 用户启动应用程序然后锁定设备屏幕并将其放在口袋里,他们在整个旅程中没有触摸它。没有发生电池耗尽或崩溃。
- 在行驶了大约 8-9 公里后一切正常,路线记录在接下来的 ~ 65 公里中被中断,然后在剩下的 ~ 80 公里中再次记录良好。

以下是我的项目设置:
- 功能中的背景模式处于打开状态,并带有位置更新。
- 从位置服务接收到的位置会根据时间戳和准确性进行过滤,如果位置成功发送到服务器,则使用“isSent”标志标记保存到核心数据中。这样我的应用程序可以覆盖网络连接中断的情况。
- 标有错误“isSent”标志的位置将每 30 秒发送到服务器。

我的 LocationManager 代码:

你们能帮我找出我的代码中的黑洞或我能做些什么来重现/解决这个问题吗?非常感谢!!!

0 投票
1 回答
47 浏览

ios - 如果我打开了位置服务,那么我的应用程序在进入后台模式时如何被杀死?

我的应用程序在后台被杀死。

但是,出于位置跟踪的目的,我的应用程序始终在后台保持活动状态。

我已经与遇到此问题的用户交谈过,他们说他们的 locationTracking 设置为 Always 并且他们没有将其关闭。

我假设即使应用程序处于后台(未挂起),它仍然可能由于内存警告而被刷新内存。

我的问题除了记忆之外还有其他原因吗?我查看了 Apple 文档,发现这可能是由于在后台运行了超过 1 分钟的 +80% CPU,但这并没有发生。我知道崩溃也可能是应用程序再次启动的原因,但我们的崩溃并没有增加。我们在 locationManager 类中没有看到任何崩溃,我们在后台做的唯一一件事就是跟踪位置并进行 API 调用。

我新添加到locationManager课堂上的唯一一件事是以下额外检查:

如果抛出错误,那么我只是记录它。否则我只是打一个网络电话。这个额外的检查会减少网络调用,所以我猜它应该更节能。

0 投票
1 回答
74 浏览

ios - 将位置设置从“始终”更改为“使用时”不会在后台继续进行位置跟踪

如果用户更改其位置设置

从“总是”到“使用时”。

并且不会返回应用程序。 有时我看到蓝条,有时我看不到它。

如果未显示蓝条,则我的应用程序可能会从内存中删除。

我在我的didChangeAuthorization方法中做的唯一一件事是,如果不是restricted, denied.notDetermined那么我调用startUpdatingLocation().

我知道我无法startUpdatingLocation在后台制作应用程序。

但是,当我从“始终”更改为“使用时”时,我是否应该能够继续这样做?!这是我无法控制的行为吗?

0 投票
0 回答
166 浏览

ios - 停止在 iOS 后台获取位置更新

我正在制作一个用于跟踪用户位置的应用程序,但是我在后台跟踪连续用户位置直到用户自己停下来时遇到问题。我自己通过在大约 30 分钟的时间内在距离 17 公里的汽车中跟踪来测试该应用程序. 当我开始跟踪时,我只是简单地将应用程序放在后台,当我到达目的地时,当我完成大约 10-12 公里的距离和大约 15-20 分钟的时间时,我看到应用程序停止更新位置。就像 IOS在后台暂停应用程序。我在 iOS 版本 12 中测试了应用程序。以下是我为获取位置所做的屏幕截图:位置经理 功能中的后台模式 info.plist 文件

我正在使用标准位置服务。我现在应该怎么做才能以这种准确度在后台获得连续的位置更新?