| For Developers / Sample applications | |
A sample automatic and manual application delegate.
// AppDelegate.m
#import "AppDelegate.h"
#import "Localytics.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[Localytics autoIntegrate:@"App Key" launchOptions:launchOptions];
// If you are using Localytics Messaging include the following code to register for push notifications
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)])
{
UIUserNotificationType types = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound);
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[application registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];
}
else
{
[application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
}
return YES;
}
// An action tied to a button
- (void)saveSettings:(id)sender
{
NSDictionary *dictionary = @{@"Use Location":@"Yes", @"Show Avatars":@"No"};
[Localytics tagEvent:@"Settings Updated" attributes:dictionary];
}
@end
// AppDelegate.m
#import "AppDelegate.h"
#import "Localytics.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[Localytics integrate:@"App Key"];
if (application.applicationState != UIApplicationStateBackground)
{
[Localytics openSession];
}
// If you are using Localytics Messaging include the following code to register for push notifications
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)])
{
UIUserNotificationType types = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound);
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[application registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];
}
else
{
[application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
}
return YES;
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[Localytics openSession];
[Localytics upload];
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
[Localytics openSession];
[Localytics upload];
}
- (void)applicationWillResignActive:(UIApplication *)application
{
[Localytics dismissCurrentInAppMessage];
[Localytics closeSession];
[Localytics upload];
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
[Localytics dismissCurrentInAppMessage];
[Localytics closeSession];
[Localytics upload];
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[Localytics setPushToken:deviceToken];
}
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
NSLog(@"Failed to register for remote notifications: %@", [error description]);
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
[Localytics handlePushNotificationOpened:userInfo];
completionHandler(UIBackgroundFetchResultNoData);
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [Localytics handleTestModeURL:url];
}
// An action tied to a button
- (void)saveSettings:(id)sender
{
NSDictionary *dictionary = @{@"Use Location":@"Yes", @"Show Avatars":@"No"};
[Localytics tagEvent:@"Settings Updated" attributes:dictionary];
}
@end