问题标签 [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 回答
331 浏览

ios - OAuth2.0 refresh token never completes in background fetch

I am trying to check emails on gmail while app is in background.

I have to deal with OAuth2 to get to the gmail, so 1st I am refreshing the token. Then in finishedRefreshWithFetcher, if no error I am checking emails using Mailcore2.

It all works fine if app is in foreground, or in -(void) applicationDidBecomeActive: (UIApplication *) application {...}.

But in background fetch it never gets to -(void)auth:finishedRefreshWithFetcher:error:

I can store token and just reuse it w/o refresh, i.e. just skip startAuth2 and go straight to retriveEmails and it all works fine too, but not sure if it is safe.

Thanks

0 投票
2 回答
116 浏览

ios - 后台应用程序获取和应用程序快照

我正在开发一个应用程序,我使用 iOS 的“后台应用程序获取”来使我的应用程序的数据保持最新。这工作正常,除了应用程序的“快照”未使用此获取更新。

当我说“快照”时,我指的是 iOS 进入后台时拍摄的图像。这是在您的应用加载之前显示的第二个图像。目前,这意味着用户(尤其是旧手机上的用户)可能会看到旧信息一秒钟左右,然后将其替换为新信息。

有没有人知道应用程序何时拍摄快照以及是否可以强制执行此操作(例如,当我在后台获取新数据时)。

或者,任何人都可以想到一种方法可以达到这种效果吗?

0 投票
1 回答
935 浏览

ios - 后台获取 iOS - 已终止的应用程序

我想这可能会被安静地回答几次,但我仍然想澄清一些未知的情况。

我一直在为我的一个 iOS 应用程序查看 Background Fetch API。我从几篇文章中了解到,fetchNewDataWithCompletionHandler当操作系统决定检查后端服务器是否有任何新数据时(无论我们设置什么自定义获取间隔),这些文章都会被调用。文章和教程说只有当您的应用程序处于非活动/后台/暂停状态时才会调用它,而不是当用户从应用程序切换器强行终止应用程序时。

但我的问题是;

  1. 在 WWDC 2013 视频中,讲师说:

有两个非常重要的场景需要测试,第一个场景是您的应用在后台启动以获取新内容,第二个场景是您的应用在后台恢复以获取新内容。

我认为第二种情况是应用程序从后台/暂停状态恢复。但是第一个场景是什么?我们的应用程序将从哪个状态在后台“启动”以获取数据?从不运行状态?

  1. 要测试后台获取,有两种选择,一种是使用“由于后台获取而启动”创建新方案,另一种是来自调试/模拟后台获取。我认为第二个是在应用程序处于后台或挂起时模拟后台获取。但是第一种情况是什么?是否与应用程序未运行时有关(从应用程序切换器中删除)?

有什么想法吗?

谢谢!!

0 投票
0 回答
167 浏览

ios - 如何在特定时间在后台下载内容?

我需要做的是iOS每天在特定时间(比如说 21:00)从网络上获取内容。

如果我使用background fetch方法:无法保证获取发生在特定时间。此外,不能保证它在任何时候都会发生,因为如果用户明确地终止应用程序,则不会发生获取。

如果我使用local notifications: 我无法执行任何操作,因为我的应用程序没有从 中唤醒background state,因此根本没有获取。

有什么办法可以实现iOS吗?我错过了关于local notifications或的一点background fetch吗?

0 投票
1 回答
316 浏览

ios - 后台任务执行未按预期工作

我需要在点击远程通知中的可操作按钮时调用 Web 服务。

在远程通知上,我们有两个按钮“详细信息”和“获取”。“Fetch”是一个后台操作(激活模式 = UIUserNotificationActivationModeBackground),将在不启动应用程序的情况下发送一些数据。

在点击“获取”时,我拨打了网络服务电话以发送我从远程通知中获得的一些详细信息。

我已经使用 NSURLSession 将这些数据发送到服务器。

NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"com.applewatch.sample"];

self.session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:self delegateQueue:nil];

当应用程序处于活动状态但不处于挂起模式时,这可以正常工作。我的意思是,一旦我们收到远程通知,如果在通知 1 小时后采取行动,服务请求就不会通过。

我怀疑,服务请求没有通过,因为应用程序处于暂停模式/终止模式。

可以帮助我如何在后台进行服务调用。

注意:我没有在 info.plist 中启用“Background Fetch”选项。

让我知道是否需要在 UIApplication 委托中启用和实现服务调用

应用程序:执行FetchWithCompletionHandler:

0 投票
0 回答
245 浏览

ios - iOS 8 中的后台模式(获取)

我正在开发一个使用后台模式将更新发布到服务器的 iOS 应用程序。应用程序唤醒、检查电池状态、启动后台进程并调用完成处理程序。以完全相同的顺序。它工作正常。在 iOS 模拟器中,在我的开发 iPhone(5s、6 和 6 plus)上,但它似乎在我分发应用程序的任何其他 iPhone 上都被破坏了。

我目前正在使用 HockeyApp(因为我们还没有准备好将应用程序提交给 Apple)来分发应用程序。我有正确的证书,我遵循了后台模式教程(启用它)并且我对电池很友好。虽然后台模式仍然只适用于我的开发 iPhone 和模拟器,而不适用于任何其他 iPhone。

这听起来很熟悉吗?我是不是忘记了什么?我做错什么了吗?帮助将不胜感激,因为它让我发疯.. :(

斯特凡

PS:我在这个要点中包含了一些代码:https ://gist.github.com/stefanvermaas/3fd27bbb270e3d1f1fbe

0 投票
2 回答
1588 浏览

ios - iOS 后台传输 - com.apple.nsurlsessiond 文件夹充满 tmp 文件

我们编写了一个媒体应用程序,允许您使用背景提取获取最新视频列表作为 json 列表

然后它使用BACKGROUND TRANSFER告诉iOS一个接一个地下载视频并返回睡眠并在完成后唤醒应用程序。

它可以做到这一切,但我们注意到空间使用量正在增长和增长。

我们添加了代码以清除所有下载的视频,但空间使用率在设置中保持不变。

我们使用 Xcode > Organizer> Devices 下载了应用程序文件夹,发现 BACKGROUND TRANSFER tmp 文件夹中充满了 tmp 文件。

这些不应该被清除吗

这通常是我使用的代码。我认为主要是我将多个下载任务(最多 30 个)附加到一个后台会话。文件的大小从电影到 pdf 不等。

在此处输入图像描述

0 投票
1 回答
181 浏览

ios - iOS - 带有推送通知的好友列表 [架构]

我正在开发一个应用程序,用户可以在其中向朋友发送远程通知(在接收设备上运行后台获取)。Facebook API 可以提供好友列表。我的问题是,如何向特定的 Facebook 好友发送远程通知?

目前我正在使用 Microsoft Azure 来存储一些基本的应用程序信息——它也可以用于远程通知吗?

如果有更好的方法可以在特定的“朋友”设备(用户可选择)上触发后台提取,请告诉我。

这是我尝试构建的图像。

在此处输入图像描述

感谢您提供任何帮助和有用的信息!

0 投票
1 回答
899 浏览

ios - IOS - Make background fetch 一天只发生一次(不需要具体时间)

我正在使用后台获取来安排任务。如果我理解正确,后台获取会在白天发生多次。我需要限制它在一天中只发生一次。一切都设置正确,现在我已经设置(作为临时值)

有什么建议我怎么能做到这一点?

0 投票
2 回答
365 浏览

ios - 通话期间未调用远程通知回调

我创建了一个应用程序,其中在接收推送通知时编写后台获取代码。我在 .plist 中启用了后台模式,内容可用密钥在推送通知有效负载中设置为 1,注册推送通知并使用委托

现在,当我的应用程序在后台时,我接到一个电话。在通话期间,我收到了我的应用程序的推送通知。
在通话期间收到推送通知时,不会调用推送通知委托。