问题标签 [uibackgroundmode]

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 投票
6 回答
67990 浏览

ios - 远程推送通知是否需要在 Info.plist 中添加 UIBackgroundModes?

我已经集成了远程推送通知,但我收到了以下警告:

didReceiveRemoteNotification:fetchCompletionHandler:],但您仍然需要将“ remote-notification”添加到 UIBackgroundMode您的Info.plist.

我的 Xcode 版本是 8.3.1。我真的很想将此添加到Info.plist. 我也遵循了一些教程,但他们也没有提到这一点。我真的应该怎么做?

0 投票
0 回答
897 浏览

ios - ios 重大位置变化、UIBackgroundModes 和挂起后的应用启动

编辑:

我的应用在前台、后台和挂起时应该能够识别出显着的位置变化和区域变化。当 allowBackgroundLocationUpdates 设置为 true 并且在 Info.plist 中设置 UIBackgroundMode “location”时,此方法有效

Apple 在应用程序评论中写道,我的应用程序没有需要持续位置跟踪的功能,并且不需要 UIBackgroundMode“位置”。苹果是对的,因为我只需要显着/区域检测。所以我们应该禁用 UIBackgroundMode “位置”。但是当我这样做时,我必须将allowBackgroundLocationUpdates 设置为false 并禁用重新启动。

如何在不设置 UIBackgroundMode“位置”的情况下启用重大位置更改和区域监控的重新启动?

我在 Apple 文档中找到的内容:

讨论

想要在挂起时接收位置更新的应用程序必须在其应用程序的 Info.plist 文件中包含 UIBackgroundModes 键(带有位置值),并将此属性的值设置为 true。后台更新需要具有位置值的 UIBackgroundModes 键;您可以使用此属性来启用和禁用基于应用程序行为的行为。例如,您可以仅在用户在您的应用中启用需要后台更新的功能后将该值设置为 true。

当此属性的值为 false 时,应用程序在根据当前授权在前台或后台运行时正常接收位置更新。更新仅在应用程序暂停时停止,从而防止应用程序被唤醒以处理这些事件。

此属性的默认值为 false。将值设置为 true 但在应用的 Info.plist 文件中省略 UIBackgroundModes 键和位置值是程序员错误。

更新 16.10.2017

我只是在真机上测试了这个。在allowBackgroundLocationUpdates 设置为false 的情况下,应用程序仍会从sdk11、ios 10.3.1 上的挂起重新启动。这不像文档中的那样,但我的问题现在已经解决了。——</p>

0 投票
0 回答
545 浏览

ios - 如何在 xcode 中禁用后台模式,以便您可以构建到设备?

我启用了后台模式来试用它,现在它阻止我的应用程序构建到设备上。我正在尝试禁用后台模式,因为坦率地说,它会弄乱我的构建并阻止我运行应用程序。我尝试在模拟器和真实设备上构建,但都没有工作。我已经删除了后台功能,还从我的 info.plist 中删除了密钥。有谁知道如何摆脱屏幕截图中显示的错误,以便我可以再次运行我的应用程序?

见截图 1

在此处输入图像描述

见截图 2

在此处输入图像描述

0 投票
0 回答
243 浏览

ios - iOS后台获取不断启动应用程序

我正在开发一个 iOS 应用程序,该应用程序通过 启用了Background FetchInfo.plist大约一年。发布了多个启用后台获取的版本,但几周前,需要后台获取的功能被删除了。该UIBackgroundModes密钥已从 中完全删除Info.plist,并且该应用程序已发布到 App Store。但令人惊讶的是,遥测表明该应用程序仍在后台定期启动!这是实际应用程序委托源代码的片段:

有没有人经历过类似的事情?UIBackgroundModes根据文档,如果字典不包含正确的值,应该不可能启动应用程序。在这种情况下,根本没有打开后台模式,但应用程序会定期在后台启动以执行获取...

遥测数据表明它仅发生在 iOS 11 上,但这可能是巧合,因为只有一小部分安装基数在 iOS 9/10 上。

顺便说一句,已向 Apple 发送了有关此问题的源级协助请求,但他们尚未回复;但也许其他应用程序的开发者以前也遇到过这个问题。

0 投票
1 回答
176 浏览

ios - Objective-C:带有提醒的应用程序,即使在应用程序被杀死或手机重新启动时也能正常工作

在下面的代码中,我设法checkSchedule每 15 秒触发一次我的方法(用于测试目的),checkSchedule将发送一个 API,然后检查是否有任何约会。如果 检测到结果connectionFinishLoading,它会通知用户。

如果应用程序位于前台或后台,则当前代码将起作用。

但是,我希望在应用程序被终止或手机重新启动并且应用程序未启动时让它工作。基本上,该功能类似于Any.do应用程序(A提醒应用程序),即使在应用程序被杀死或手机重启时也会触发提醒。任何指示或帮助将不胜感激。

@AppDelegate.m

0 投票
1 回答
4933 浏览

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

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

反应本机背景任务

反应本机背景提取

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

请帮我。

0 投票
1 回答
408 浏览

ios - iOS:在后台运行应用程序并更新位置

我打算开发一个适用于地理围栏进入/退出事件的 iOS 应用程序。

我需要在应用程序在后台运行或被操作系统调用大约 5 分钟时运行我的应用程序。就像收到事件监控的通知一样。

我已经通过位置更新启用了后台执行,并在需要时运行后台任务以继续在后台执行。

问题是应用程序只运行了大约 180 秒,然后后台任务自动终止。完成后我尝试重新启动后台任务,但没有成功,应用程序执行在 3 分钟后停止。

是否可以运行应用程序超过 180 秒的时间?我正在使用 iOS 11 和 12 进行测试。

编辑: 我尝试 keepAlive在后台任务完成时调用功能,但是第二次后台执行时间没有增加并且应用程序终止。

0 投票
2 回答
188 浏览

swift - 在后台检测网络变化 (iOS)

我正在尝试创建一个 VPN 应用程序,当 VPN 在设置应用程序中手动关闭时通知用户。更一般地说,我希望能够在网络设置更改时做出反应。我在 StackOverflow 上看到了很多关于可达性、网络等的评论,但我不知道我是否可以在后台检查这些东西。有没有办法通过使用“获取”或“远程通知”来做到这一点。我的手机上有一个应用程序,如果我关闭 VPN,它会给我一个通知,所以我知道有办法做到这一点,但我不知道怎么做。

0 投票
0 回答
24 浏览

ios - 当应用处于后台时,无法接收 Xamarin.ios 应用的蓝牙事件

我正在构建一个使用蓝牙连接的 Xamarin.ios 应用程序。我正在努力实现以下目标。

  1. 每当我的应用程序被推送到后台时,该应用程序仍然需要接收蓝牙事件。为此,我已将这些字符串包含到 info.plist

  2. 每当我的应用程序处于后台时,都不会收到蓝牙事件

    a] CBCentralManager 接口没有看到任何事件

    b] AppDelegates 中也没有看到任何事件。

请让我知道如何接收这些事件

  1. 我试图实现的另一种情况是每当连接蓝牙设备时自动启动应用程序。有没有办法做到这一点?如果是,请分享步骤。