Goal
To add the SDK to your apps code by manual integration, preform the following steps.
Attention
This topic covers a manual method that gives you greater control, and lets you override behaviour. For an automatic (basic) process, see SDK Integration.
Prerequisites
- Xcode application with a base SDK of iOS 9 and above.
- Xcode application with a deployment target of iOS 7 and above.
- An account on the Appoxee dashboard with a configured application.
Procedure
1. Drag AppoxeeSDK.framework into you project, or use cocoapods see link “add mobile push sdk”
2. Open your AppDelegate.m file, and add the following import statement:
#import <AppoxeeSDK/AppoxeeSDK.h>
3. Add the following delegate notation (can also be added at AppDelegate.h):
@interface AppDelegate() <AppoxeeDelegate> @end
4. Add the following implementation to the method named: application:didFinishLaunchingWithOptions:, Where, xxx.xxx represents the SDK ID. These were created for you with the Appoxee Dashboard.:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[Appoxee shared] engageWithLaunchOptions:launchOptions andDelegate:self andSDKID:@"xxx.xxx"]; // Insert other initialization code or other Frameworks code below. return YES; }
AppoxeeConfiguration.plist
Attention! you will still need to define AppoxeeConfiguration.plist file, if you need to configure your applications environment
5. Add the following implementation to the method named: application:didRegisterForRemoteNotificationsWithDeviceToken:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { [[Appoxee shared] didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; }
6. Add the following implementation to the method named: application:didReceiveRemoteNotification:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { [[Appoxee shared] receivedRemoteNotification:userInfo]; }
7. Add the following implementation to the method named: application:didRegisterUserNotificationSettings:
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings { [[Appoxee shared] didRegisterUserNotificationSettings:notificationSettings]; }
8. OPTIONAL STEP - To implement iOS8 'Push Actions', add the following implementation to the method named: application:handleActionWithIdentifier:forRemoteNotification:completionHandler:
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo completionHandler:(void (^)())completionHandler { // Must be implemented in order to enable 'Push Actions'. BOOL didHandle = [[Appoxee shared] handleActionWithIdentifier:identifier forRemoteNotification:userInfo completionHandler:completionHandler]; if (!didHandle) { completionHandler(); } // Handle the action in case it is not handled by Appoxee. When done - completionHandler() must be called. }
9. OPTIONAL STEP – Silent push
Please review the documentation provided with the SDK for the below methods :
- handleActionWithIdentifier:forRemoteNotification:completionHandler: - didReceiveRemoteNotification:fetchCompletionHandler:andNotifyCompletionWithBlock:
10. OPTIONAL STEP - To implement 'Deep Linking', 'Opening a View Controller', 'Open the App Store' and a website, add the following implementation to the method named: application:openURL:sourceApplication:annotation:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { BOOL handling = NO; if ([sourceApplication isEqualToString:@"AppoxeeSDK"]) { /* Appoxee SDK will automatically try to handle all annotations. return 'NO' to indicate the Appoxee should handle the url, or 'YES' for taking over control. Possible annotations from Appoxee: @"APXURL_scheme", @"APXWeb_Site", @"APXApp_Store", @"APXView_Controller" */ if ([annotation isEqualToString:@"APXURL_scheme"]) { handling = YES; // your implementation goes here. } else { handling = NO; // We will let Appoxee to handle the redirection for us. } } return handling; }
11. OPTIONAL STEP - Appoxee delegate:
#pragma mark - AppoxeeDelegate - (void)Appoxee:(Appoxee *)appoxee handledRemoteNotification:(APXPushNotification *)pushNotification andIdentifer:(NSString *)actionIdentifier { // a push notification was recieved. }