问题标签 [background-fetch]

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 回答
234 浏览

swift - 每小时检查一次论坛上的新帖子 Swift

我正在制作一个应用程序,用于检查论坛页面(如 reddit)上是否有新帖子和线程。当有新帖子时,应用程序会通过后台获取通知用户,但如果用户关闭应用程序,后台获取将不起作用。此外,该应用程序并不是每小时都更新一次,而可能只是每 5-10 小时更新一次。是否有另一种在后台更新的方式,比如发送远程通知,如果,如何?

0 投票
1 回答
2720 浏览

ios - IOS Firebase 后台获取

根据教程-> https://www.raywenderlich.com/92428/background-modes-ios-swift-tutorial3 ,我在 swift 2.0 上使用后台获取时遇到问题。我收到此错误: application:performFetchWithCompletionHandler: 但从未调用过完成处理程序。

基本上我有一个功能,我可以在其中执行我的操作(在 firebase 上调用数据),我希望它在后台执行。

这是我的应用委托代码

这是我在接口函数上从firebase获取数据的方式:

Xcode 错误:

警告:应用程序委托收到了对 -application:performFetchWithCompletionHandler: 的调用,但从未调用过完成处理程序。

提前致谢。

0 投票
0 回答
554 浏览

ios - iOS后台获取在模拟器上工作但不是在物理设备上

好的,所以我已经成功实现了后台提取。那里没有问题。我遇到的问题是后台获取在模拟器和设备上的工作方式不同。

}

现在后台提取的输出很好,即

2016-04-20 18:47:12 +0000 在逻辑错误状态后计数 19,检查服务器日志

但是当我在 iphone 5(实际)设备上运行相同的东西时,它只打印

2016-04-20 18:47:12 +0000

之后什么都没有

2016-04-20 18:49:12 +0000

之后

使用调试器运行或中断

  1. 它不能是后台获取 30 秒的限制(我认为)。虽然响应很大,但目前我只调用一个请求。
  2. 错误的代码.. 嗯.. 在模拟器中完美运行。

ps响应数据比较大的json

所以问题是我错过了什么?以及为什么不调用 SyncServiceDataSource.dbOperations

0 投票
2 回答
1064 浏览

swift - 应用程序在后台获取的 Collectionview 的 reloadData() 处崩溃

所以我正在做一个后台获取,并且在我想更新 UI 之后。后台获取本身(数据库)有效,但是当我想更新 UI 时,我遇到了崩溃unexpectedly found nil while unwrapping an Optional value 根据我的 xCodeself.newestPublicationsCollectionView.reloadData()是在 updateCollections() 函数中发生崩溃的地方。

AppDelegate 中的其他代码:

我的 PublicationOverviewController 中的 .fetch

我认为崩溃是因为我需要主线程上的 UI,但这并没有帮助。任何输入都会很好。

细节:

在我的 PublicationFetcher.shared.fetchAllPublications() 中,我执行以下操作:

  • 从后端获取数据
  • dispatch_async(dispatch_get_main_queue()) { () -> Void in NSNotificationCenter.defaultCenter().postNotificationName("RELOAD_NOTIFICATION", object: nil) }

在那个重新加载通知下我做了一个updateCollections()

斯威夫特 3

0 投票
6 回答
10075 浏览

ios - 即使应用程序终止,如何在 Swift 中每小时在后台获取数据?

我正在制作一个提供每小时获取数据功能的应用程序。即使应用程序终止,它也会获取数据。我怎样才能实现这个功能?

经过大量搜索后,我发现使用 performFetchWithCompletionHandler 进行后台获取。即使我的应用程序终止,此功能也会起作用吗?我的意思是如果我的应用程序处于关闭或终止状态,我可以自动调用这个函数吗?

0 投票
3 回答
2263 浏览

ios - 后台获取和本地通知

在我的应用程序中,我打算使用本地通知而不是推送通知。我需要检查交易更新是否可用,如果是,只需使用本地通知通知用户。我已经完成了以下步骤。

  1. didFinishLaunchingWithOptions中,设置获取间隔[[UIApplication sharedApplication]setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum]
  2. -(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {

> 为 POST 请求添加了如下代码以及我的请求数据:

  1. 响应解析后,比较是否有任何更新以及是否有任何更新,使用以下代码显示通知。

    /li>

问题是大多数时候,当手机被锁定时,收到错误消息 >Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost."

因此没有显示通知。但是当我将电话直接连接到电话并在调试模式下启用后台同步时,一切正常。

请指导我一个简单的方法来做到这一点,或者如果我做错了什么,请纠正我。

谢谢,

移动开发者。

0 投票
1 回答
401 浏览

ios - iOS后台应用程序获取不起作用

所以,我想使用带有位置的 API 检查一些东西并发送一个UILocalNotification. 这就是我从另一个类获取 AppDelegate 中的位置的方式:

在 AppDelegate 我有这个:

类 AppDelegate:UIResponder,UIApplicationDelegate,CLLocationManagerDelegate {

....

我的问题是我的分析一直说应用程序在performFetchWithCompletionHandler. 我在实际设备上执行 Debug->Stimulate Background Fetch 并且工作得很好。我不知道为什么分析说应用程序在用户身上崩溃。

这是崩溃的分析链接:http: //crashes.to/s/86193953c05

0 投票
0 回答
451 浏览

ios - 即使应用程序在后台,backgroundTimeRemaining 也会非常高

我正在尝试在应用程序状态为后台时打印后台剩余时间。我正在尝试读取后台剩余时间以在触发后台获取时执行某些任务。

这是我的代码:-

UIApplicationState appState = [[UIApplication sharedApplication] applicationState];

NSString *appStateString;

当我打印 appStateString 的值时,我看到:-

background 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.00 seconds remaining

根据 Apple 的文档,它说“当应用程序在前台运行时,此属性中的值仍然适当大”

但在我的情况下,应用程序在后台运行。那么为什么这个值会这么大呢?请建议

0 投票
1 回答
465 浏览

ios - 将特定的 NSTimeInterval 传递给 setMinimumBackgroundFetchInterval 是一种好习惯吗?

我有义务通过UIApplicationBackgroundFetchIntervalMinimum或者UIApplicationBackgroundFetchIntervalNever

或者是否可以改为传递自定义间隔,例如 10 分钟:

UIApplication.sharedApplication().setMinimumBackgroundFetchInterval(600.0)

在我的应用程序中,我必须在应用程序处于后台时下载一些新的更新数据。

然后我将使用新数据向用户发送本地通知。

0 投票
0 回答
1386 浏览

swift - 执行后台获取时如何正确使用completionHandler?

我很难completionHandlerperformFetchWithCompletionHandler.AppDelegate

我的应用程序进行了一些后台提取,并且在提取期间我想调用位于我的一个 viewControllers 中的函数

使用 的正确方法是什么completionHandler,我知道它是一个异步任务。

当我想将数据发送到我的数据库时,我设法让它工作,但是当我想调用位于其中一个 viewControllers 中的函数时,我无法让它工作

尝试:正确的调用方式是completionHandler什么?

PS:这是成功的尝试,这是我将数据发送到我的数据库时: