watchOS app停止发送NSURLSessionDownloadTask请求

时间:2017-07-12 17:44:45

标签: ios iphone watchkit apple-watch

我有一个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应用程序的相同问题?

1 个答案:

答案 0 :(得分:0)

查看This Apple Example - WatchBackgroundRefresh,以及我对this question的回答。希望这可以引导您使用一些有效的代码。