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 Add AppManager to your App Code (Manual) 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. }