Google为GoogleMap提供了an iOS SDK,但GoogleMap JavaScript API提供了更多功能,包括custom styling和data visualisation,这些功能我想在我的应用中实现。
那么有什么方法可以在我的应用程序中使用这些JavaScript API吗?
我在想是否可以将地图嵌入到WebView中,以便我可以在应用程序中执行JavaScript操作?这可能吗?性能如何受到伤害?
提前致谢。
答案 0 :(得分:1)
我正在使用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