问题标签 [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.
ios - 想要检测用户何时在我的 IOS 应用程序中解锁或锁定手机?
我想知道当我的应用程序在后台时用户如何与他/她的 iphone 交互。如果用户锁定或解锁他/她的 iPhone,我会收到任何 api 或通知吗?
ios - UIStatusBarSignalStrengthItemView 和 signalStrengthRaw 计算单元格信号强度,不更新后台值
我们使用私有框架(包括 UIStatusBarSignalStrengthItemView.h)来计算细胞信号强度。它在前台模式下完美运行,但是一旦我的应用程序进入后台,它就会停止更新细胞信号强度。
我们使用的代码是:
请注意,我们将应用程序用于企业用途,因此我们无需担心 Apple 拒绝使用私有框架。
任何帮助将不胜感激。
ios - 是否可以在 iOS 后台打开应用程序(无需用户交互)?
是否可以在没有任何用户交互的情况下在后台打开 iOS 应用程序?
我们可以为此使用私有框架。
我不需要担心 App Store 提交,因为该应用程序用于企业分发。
ios - IOS。后台模式和网络检查
我需要实现这样的功能:
每次应用程序获得互联网连接时,我都需要向 Web 服务器发送请求。我需要从后台执行此操作,而不是未启动应用程序。那么,我应该使用什么背景模式以及如何实现该功能?
ios - 位置背景模式在 iOS 上不起作用
我正在尝试在我的应用程序中启用后台定位模式。我在我的 plist 文件中启用了“位置更新”后台模式。该应用程序包含一个每 15 秒更新一次的计时器。
当应用程序导航到后台时,我正在执行以下操作
初始化位置管理器如下
当我在 10 分钟后导航回应用程序时,我的计时器在 3 分钟停止,这是应用程序暂停的时间。
当应用程序回到前台时我的代码如下:
有什么帮助吗?
ios - “始终”位置权限...仅偶尔使用但始终显示箭头?
我发现如果您在 iOS 上拥有应用程序的“始终CLLocationManager
”位置权限......即使没有初始化,它也始终在状态栏中显示位置箭头,除非应用程序使用任务切换器“强制退出”。
我确信这是为了全面披露,但考虑到该位置未被使用,这并不准确。这里是否有错误导致箭头显示(同样,CLLocationManager
未初始化)或者这种行为在 iOS 10 中是正常的,因为应用程序可以在任何时候突然请求位置?
ios - Firebase 数据库观察者的持久性如何?
我决定在 XCode iOS 模拟器上运行测试,以查看 Firebase 数据库中某个位置的观察者是否会在应用程序处于后台时继续触发。事实证明确实如此,但我想知道这是否在应用程序终止之前是无限期的,或者它是否会在一段时间后真正停止。已经很长时间了,每当我手动更新观察者正在查看的数据库中的值时,观察者仍然会触发。另请注意,我的应用程序功能中没有启用任何背景模式,因此尽管没有任何类型的明确背景模式,但观察者似乎可以在背景模式下持续存在。
一方面,我很高兴观察者留在后台,因为这对我有帮助,但我有点急于知道为什么允许发生这种情况,因为默认情况下 iPhone 在做事时通常非常保守在后台。
ios - 单击按钮时,我想将应用程序从前台带到后台?这可能吗?如何?
当我单击按钮时,我希望在前台运行的应用程序需要转到后台。可能吗?如果有怎么办?
ios - 不是通过 3G 从后台发送的数据
我有一个应用程序在后台运行时将数据发送到服务器。下面是负责数据发送的代码:
所以这inputData
是一个带有字符串的简单字典。
一个方法doRequest
基于一个 NSURLSession 并且基本上看起来像这样:
正如我所说,一切都通过 Wi-Fi 运行,应用程序进入后台,几分钟后,自定义蓝牙设备发送一些数据并将应用程序从暂停模式中唤醒。iOS 应用程序接收到数据后,如果设备通过 3G 连接,则无法将其发送到服务器。我很肯定收到通过蓝牙发送的数据,因为它存储在本地数据库中。
还有一个重要的事实。如果应用程序通过 Xcode 运行,即使设备通过 3G 连接,应用程序也会从后台发送数据。为此,我运行一个应用程序,然后点击主页按钮将其置于后台。
不知道有什么区别,为什么当通过电缆连接到 Mac 时应用程序的行为会有所不同,以及为什么不通过 3G(甚至 2G)发送数据?
附加信息:
我不是要上传文件,而是只是将 JSON 发送到服务器。
ios - 在 didReceiveRemoteNotification 中播放声音,而在后台,使用文本到语音功能
我目前正在尝试的是在应用程序在后台(或可能从挂起状态唤醒)收到远程通知时播放消息。
应用程序从挂起模式唤醒后根本不播放声音。
didReceiveRemoteNotification:
当应用程序在前台时,调用方法后立即播放声音。
didReceiveRemoteNotification:
当应用程序从挂起模式唤醒时调用方法时立即播放声音的合适方法是什么?
这是一些代码(语音管理器类):
}
后来在AppDelegate
:
我在 Capabilities->Background Modes 部分启用了音频、AirPlay 和画中画选项。
编辑:
如果需要,也许我应该启动一个后台任务并运行过期处理程序?我想这可能有效,但我也想听听解决这种情况的常用方法。
同样使用此代码,当我在后台收到通知时,我会收到下一个错误:
激活音频会话时出错:Error Domain=NSOSStatusErrorDomain Code=561015905 "(null)"
代码 561015905 适用于:
AVAudioSessionErrorCodeCannotStartPlaying = '!pla', /* 0x21706C61, 561015905
它被描述为:
如果应用程序的信息属性列表不允许使用音频,或者应用程序在后台并使用不允许背景音频的类别,则可能会出现此错误类型。
但我在其他类别(AVAudioSessionCategoryAmbient
和AVAudioSessionCategorySoloAmbient
)中遇到同样的错误