#1352 - Adding visit event with data attributes
This commit is contained in:
@@ -4,6 +4,7 @@ extern NSString *const MGLEventTypeMapLoad;
|
||||
extern NSString *const MGLEventTypeMapTap;
|
||||
extern NSString *const MGLEventTypeMapDragEnd;
|
||||
extern NSString *const MGLEventTypeLocation;
|
||||
extern NSString *const MGLEventTypeVisit;
|
||||
|
||||
extern NSString *const MGLEventKeyLatitude;
|
||||
extern NSString *const MGLEventKeyLongitude;
|
||||
@@ -16,6 +17,8 @@ extern NSString *const MGLEventKeyVerticalAccuracy;
|
||||
extern NSString *const MGLEventKeyPushEnabled;
|
||||
extern NSString *const MGLEventKeyEmailEnabled;
|
||||
extern NSString *const MGLEventKeyGestureID;
|
||||
extern NSString *const MGLEventKeyArrivalDate;
|
||||
extern NSString *const MGLEventKeyDepartureDate;
|
||||
|
||||
extern NSString *const MGLEventGestureSingleTap;
|
||||
extern NSString *const MGLEventGestureDoubleTap;
|
||||
|
||||
@@ -17,6 +17,7 @@ NSString *const MGLEventTypeMapLoad = @"map.load";
|
||||
NSString *const MGLEventTypeMapTap = @"map.click";
|
||||
NSString *const MGLEventTypeMapDragEnd = @"map.dragend";
|
||||
NSString *const MGLEventTypeLocation = @"location";
|
||||
NSString *const MGLEventTypeVisit = @"visit";
|
||||
|
||||
NSString *const MGLEventKeyLatitude = @"lat";
|
||||
NSString *const MGLEventKeyLongitude = @"lng";
|
||||
@@ -29,6 +30,8 @@ NSString *const MGLEventKeyVerticalAccuracy = @"verticalAccuracy";
|
||||
NSString *const MGLEventKeyPushEnabled = @"enabled.push";
|
||||
NSString *const MGLEventKeyEmailEnabled = @"enabled.email";
|
||||
NSString *const MGLEventKeyGestureID = @"gesture";
|
||||
NSString *const MGLEventKeyArrivalDate = @"arrivalDate";
|
||||
NSString *const MGLEventKeyDepartureDate = @"departureDate";
|
||||
|
||||
NSString *const MGLEventGestureSingleTap = @"SingleTap";
|
||||
NSString *const MGLEventGestureDoubleTap = @"DoubleTap";
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
@interface MGLMetricsLocationManager() <CLLocationManagerDelegate>
|
||||
|
||||
@property (nonatomic) CLLocationManager *locationManager;
|
||||
@property (atomic) NSDateFormatter *rfc3339DateFormatter;
|
||||
|
||||
@end
|
||||
|
||||
@@ -16,6 +17,15 @@
|
||||
_locationManager = [[CLLocationManager alloc] init];
|
||||
_locationManager.distanceFilter = 10;
|
||||
[_locationManager setDelegate:self];
|
||||
|
||||
_rfc3339DateFormatter = [[NSDateFormatter alloc] init];
|
||||
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
|
||||
|
||||
[_rfc3339DateFormatter setLocale:enUSPOSIXLocale];
|
||||
[_rfc3339DateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ssZ"];
|
||||
// Clear Any System TimeZone Cache
|
||||
[NSTimeZone resetSystemTimeZone];
|
||||
[_rfc3339DateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@@ -65,6 +75,16 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (void)locationManager:(CLLocationManager *)manager didVisit:(CLVisit *)visit {
|
||||
[MGLMapboxEvents pushEvent:MGLEventTypeVisit withAttributes:@{
|
||||
MGLEventKeyLatitude: @(visit.coordinate.latitude),
|
||||
MGLEventKeyLongitude: @(visit.coordinate.longitude),
|
||||
MGLEventKeyHorizontalAccuracy: @(visit.horizontalAccuracy),
|
||||
MGLEventKeyArrivalDate: [_rfc3339DateFormatter stringFromDate:visit.arrivalDate],
|
||||
MGLEventKeyDepartureDate: [_rfc3339DateFormatter stringFromDate:visit.departureDate],
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
|
||||
NSString *newStatus = nil;
|
||||
switch (status) {
|
||||
|
||||
Reference in New Issue
Block a user