0

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

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

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

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

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

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

NSURLSessionUploadTask *dataTask = [self.session uploadTaskWithRequest:mutableURLRequest fromData:nil];
[dataTask resume];

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

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

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

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

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

应用程序:执行FetchWithCompletionHandler:

4

1 回答 1

1

我无法回忆或再次找到我之前阅读此信息的位置,但请尝试使用

- uploadTaskWithRequest:fromFile:

我相信这是唯一可以在后台工作的上传方法

于 2015-06-03T15:37:37.233 回答