我正在使用AFNetworking框架。我做了它的子類。 CUK_Client是子類的名稱。
google api examples顯示它們的方法類型(POST或GET)。
您可以根據自己的需要進行修改。
makeRequestGet是一種通用的GET方法,您可以根據需要使用任何參數和路由對其進行調用。例如,在getDirection方法中,我使用它來獲取兩個座標之間的方向。
.h文件中
@interface CUK_Client : AFHTTPSessionManager
+ (CUK_Client *) sharedClient;
+ (CUK_Client *) googleMapsClient;
- (void)makeRequestGet:(NSString *) route withParamaters:(NSDictionary *)parameters completion:(DefaultIdResultBlock) completion ;
- (void)getDirection:(NSDictionary *)params completion:(DefaultIdResultBlock) completion;
- (void)beaconsVisited:(NSArray *)beacons completion:(DefaultIdResultBlock) completion;
@end
.m文件
@implementation CUK_Client
+ (CUK_Client *) googleMapsClient {
static CUK_Client *googleMapsClient = nil;
static dispatch_once_t onceToken;
dispatch_once (&onceToken ,^{
googleMapsClient = [[self alloc] initWithBaseURL:[NSURL URLWithString:@"http://maps.googleapis.com/"]];
});
return googleMapsClient;
}
- (void) makeRequestGet:(NSString *) route withParamaters:(NSDictionary *)parameters completion:(DefaultIdResultBlock) completion {
[self GET:route
parameters:parameters
success:^(NSURLSessionDataTask *task, id responseObject) {
return completion (nil ,responseObject);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
return completion ([error localizedDescription] , nil);
}];
}
-(void)getDirection:(NSDictionary *)params completion:(DefaultIdResultBlock)completion {
[self makeRequestGet:@"maps/api/directions/json" withParamaters:params completion:completion];
}
@end
@Kivannc你好,謝謝你的回答。但是,我不只是向Web服務API發出HTTP請求,但實際上我需要直接執行JavaScript。所以我現在正在考慮使用UIWebiview的 - stringByEvaluatingJavaScriptFromString:這樣做。 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/#//apple_ref/occ/instm/UIWebView/stringByEvaluatingJavaScriptFromString: –