我有一个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应用程序的相同问题?
答案 0 :(得分:0)
查看This Apple Example - WatchBackgroundRefresh,以及我对this question的回答。希望这可以引导您使用一些有效的代码。