【问题标题】:watchOS app stops sending NSURLSessionDownloadTask requestswatchOS 应用停止发送 NSURLSessionDownloadTask 请求
【发布时间】:2017-07-12 17:44:45
【问题描述】:

我有一个 iOS 应用程序和一个配套的 watchOS 应用程序。 iOS 应用程序在 watchOS 应用程序首次启动时为 watchOS 应用程序提供访问令牌。在此 watchOS 应用开始通过发送 NSURLSessionDownloadTask 请求定期从服务器获取数据更新之后。

我的 NSURLSession 配置如下:

NSURLSessionConfiguration *config = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:[[[[NSBundle mainBundle] bundleIdentifier] stringByAppendingString:@".backgroundsession"] stringByAppendingString:[NSUUID UUID].UUIDString]];
config.sharedContainerIdentifier = APP_GROUPS_ID;
self.urlSession = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];

然后我通过以下方式定期发送请求:

NSURL *url = [NSURL URLWithString:API];
NSMutableURLRequest *request = [self buildRequestForURL:url andMethod:@"POST"];

NSString *body = [NSString stringWithFormat:<some request params>];

[request setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];

[[self.urlSession downloadTaskWithRequest:request] resume];

watchOS 应用在一段时间内成功接收更新。当 iOS 应用处于后台模式或手动卸载时,它会成功接收更新。

但当我锁定 iPhone 屏幕时(几分钟后或几分钟后),watchOS 应用停止接收更新。

有人在使用 watchOS 应用时遇到过同样的问题吗?

【问题讨论】:

  • 你使用WKURLSessionRefreshBackgroundTask吗?
  • @JensPeter 不,我没有。

标签: ios iphone watchkit apple-watch


【解决方案1】:

看看This Apple Example - WatchBackgroundRefresh,以及我对this question的回答。希望这可以引导您找到一些工作代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2015-06-19
    • 2021-12-22
    相关资源
    最近更新 更多