iOS Client Integration
Step 1: Set your License Key
After you installed ContextSDK, you need to add your license key. Register here to get started.
In your willFinishLaunchingWithOptions:
(or anywhere before you access the SDK) setup the ContextManager
:
- Create a new custom Swift class named
AppDelegate.swift
AppDelegate.swiftimport ContextSDK class AppDelegate: NSObject, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool { ContextManager.applicationDidFinishLaunchingWithOptions(launchOptions, licenseKey: "YOUR_LICENSE_KEY") return true } }
- In your
App
sceneUIApplicationDelegateAdaptor
property wrapper
Note: Android is still in beta - to obtain a license key contact us at support@contextsdk.com
- In your
Application
sub-class call the following code:
class MainApplication : Application() {
override fun onCreate() {
super.onCreate()
ContextSDK.setup(this, "YOUR_LICENSE_KEY_HERE")
}
}
- In your primary
Activity
subclass, or in everyActivity
in your application, allow ContextSDK to attach and detach:
- In your
Application
sub-class call the following code:
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
ContextSDK.Companion.setup(this, "YOUR_LICENSE_KEY_HERE", new ContextSDKConfiguration());
}
}
- In your primary
Activity
subclass, or in everyActivity
in your application, allow ContextSDK to attach and detach:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ContextSDK.Companion.attachToActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
ContextSDK.Companion.detachFromActivity(this);
}
}
Notes:
- If the above isn't setup correctly, ContextSDK won't be able to start and stop collection of accelerometer & gyroscope data.
- The
Activity
must conform toLifecycleOwner
(e.g.AppCompatActivity
). PlainActivities
are not supported.
Call the following code on app start:
In the Start()
of a MonoBehaviour
that is run early in your game (or anywhere before you access the SDK) setup the ContextManager
:
Step 2: Import ContextSDK
Step 3: Ensure Remote Notification
entitlement
In your Xcode project, go to Signing & Capabilities
and enable the Remote Notification
capability in the Background Modes
section.
Step 4: Provide User ID and Push Token
You need to register the user's device with a unique user ID and the device's push token. The user-id may be whatever you use to identify each user in your existing push notification system, e.g. an email address or a user ID from your database.
public func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
// Your existing code for handling device token registration
// Set the device token and user ID with ContextSDK to enable push notifications
ContextPush.setDeviceToken(deviceToken).setUserId(userId)
}
public func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)
{
// Your existing code for handling device token registration
// Set the device token with ContextSDK to register the device for push notifications
ContextPush.setDeviceToken(deviceToken)
}
Step 5: Handle Background Notifications
Ensure that your app can handle push notifications received while in the background by implementing the following method:
func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
{
// ContextSDK will process the notification if it is a valid ContextPush notification
// The completion handler will be automatically called if processed
if ContextPush.applicationDidReceiveRemoteNotification(userInfo, fetchCompletionHandler: completionHandler) {
return
}
// Handle other types of background notifications with your existing code, if needed
}
Step 6: Handle Notification Opens
Track when users open notifications to gather engagement metrics and improve user experience:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void)
{
// Process the notification with ContextSDK to track open rates and user interactions
ContextPush.userNotificationCenterDidReceiveResponse(response)
// Your existing code
// Ensure completion handler is called to finalize notification handling
completionHandler()
}
Next Step: Push Provider Integration
After setting up your iOS client, integrate with your existing push provider: