2016-06-07 6 views
0

Google предоставляет an iOS SDK для GoogleMap, однако GoogleMap JavaScript API предоставляет больше функциональных возможностей, включая custom styling и data visualisation, которые я хочу получить в своем приложении.Как я могу использовать API JavaScript GoogleMap в приложении iOS?

Так можно ли использовать эти API JavaScript в моем приложении?

Я думаю, могу ли я вставлять карту в WebView, чтобы я мог делать вещи JavaScript в приложении? Это возможно? Как вред производительности?

Заранее спасибо.

ответ

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 
+0

Привет @Kivannc, спасибо за ваш ответ. Однако я не просто делаю HTTP-запрос к API веб-сервисов, но на самом деле мне нужно выполнить JavaScript напрямую. Поэтому я сейчас рассматриваю использование UIWebiview - stringByEvaluatingJavaScriptFromString: для этого. https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWebView_Class/#//apple_ref/occ/instm/UIWebView/stringByEvaluatingJavaScriptFromString: –

Смежные вопросы