iOS 共享扩展 NSURLSession 在 iOS 9 上不工作
iOS Share Extension NSURLSession not working on iOS 9
所以我的应用程序有这个 iOS 共享扩展,当单击 'POST' 按钮时,它会在 didSelectPost()
中将结果发送到我的服务器。
在模拟器上一切正常;请求已发送,我可以在 Charles 中看到数据包发出。
在 iOS 9 上,共享扩展正确启动,但请求未在 didSelectPost
函数中发送。
我不确定是我的 Share Extension 还是 NSURLSession
有问题。
代码-
- (void)didSelectPost {
//Get session configuration
NSString * const configName = @"com.xx.xxx";
self.sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:configName];
self.sessionConfiguration.sharedContainerIdentifier = @"group.xx.ShareURL";
//Init NSURLSession
self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration];
NSURLRequest *request = [self postContentToService:self.shareUrl.absoluteString];
//post request
self.sessionTask = [self.session dataTaskWithRequest:request];
//resume
[self.sessionTask resume];
[self.extensionContext completeRequestReturningItems:@[] completionHandler:nil];
}
感谢任何帮助。
原来我使用的是 HTTP 而不是 HTTPS,ATP 东西阻止了我所有的 NSURLRequests,没有任何形式的注意。
我们推动我们的服务器团队切换到允许 HTTPS 并使用 HTTPS 连接,现在一切正常。
所以我的应用程序有这个 iOS 共享扩展,当单击 'POST' 按钮时,它会在 didSelectPost()
中将结果发送到我的服务器。
在模拟器上一切正常;请求已发送,我可以在 Charles 中看到数据包发出。
在 iOS 9 上,共享扩展正确启动,但请求未在 didSelectPost
函数中发送。
我不确定是我的 Share Extension 还是 NSURLSession
有问题。
代码-
- (void)didSelectPost {
//Get session configuration
NSString * const configName = @"com.xx.xxx";
self.sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:configName];
self.sessionConfiguration.sharedContainerIdentifier = @"group.xx.ShareURL";
//Init NSURLSession
self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration];
NSURLRequest *request = [self postContentToService:self.shareUrl.absoluteString];
//post request
self.sessionTask = [self.session dataTaskWithRequest:request];
//resume
[self.sessionTask resume];
[self.extensionContext completeRequestReturningItems:@[] completionHandler:nil];
}
感谢任何帮助。
原来我使用的是 HTTP 而不是 HTTPS,ATP 东西阻止了我所有的 NSURLRequests,没有任何形式的注意。
我们推动我们的服务器团队切换到允许 HTTPS 并使用 HTTPS 连接,现在一切正常。