Ich habe versucht, eine Lösung zu finden, um HTTP-Anfragen mit AFNetworking in Warteschlange zu stellen, wenn das Gerät offline ist, also wenn es wieder online geht. Soweit ich das verstanden habe, ist dies möglich, indem Sie den Parameter setReachabilityStatusChangeBlock:
einstellen.AFNetworking 2.0 Queue-Anfrage, wenn Gerät offline ist mit setReachabilityStatusChangeBlock macht nichts
Bisher ist das, was ich habe:
// ViewController.h
@interface XYZTicketViewController : UIViewController<NSURLConnectionDelegate> // This is from before I started using AFNetworking, I'm intending to change all the requests to use AFNetworking in the near future.
@end
// ViewController.m
(...)
#import <AFHTTPRequestOperationManager.h>
#import <AFNetworkReachabilityManager.h>
(...)
@interface XYZTicketViewController()
- (void)viewDidLoad
(...)
{
NSURL *baseURL = [NSURL URLWithString:@"http://54.213.167.202"];
AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:baseURL];
NSOperationQueue *operationQueue = manager.operationQueue;
[manager.reachabilityManager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
switch (status) {
case AFNetworkReachabilityStatusReachableViaWWAN:
case AFNetworkReachabilityStatusReachableViaWiFi:
[operationQueue setSuspended:NO];
NSLog(@"WIFI");
break;
case AFNetworkReachabilityStatusNotReachable:
default:
[operationQueue setSuspended:YES];
NSLog(@"oflline, baby");
break;
}
}];
NSDictionary *parameters = @{@"action": @"login", @"user": @"[email protected]", @"pass": @"howdoyouturnthison"};
[manager GET:@"http://54.213.167.202/api.php" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
(...)
}
Ich kann kein Beispiel finden, aber ich gelesen here dass es möglich ist, aber bisher nichts passiert, wenn die Online-Statusänderungen.
Hoffe, dass Sie mich
Sollten Sie nicht logisch zuerst die Statusänderung Block gesetzt und dann die Überwachung starten? –
Ich habe tatsächlich den obigen Code implementiert - siehe http://stackoverflow.com/questions/29187488/afnetworking-offline-queue, aber die Anfrage wird nie ausgeführt, wenn das Gerät wieder online geht. – p0lAris