THEMEN×
Push-Nachrichten mit Deep-Links implementieren
Nachdem Sie die Deep-Link-URL in der Adobe Mobile Services-Benutzeroberfläche konfiguriert haben, befindet sich diese URL in der Push-Payload mit dem Schlüssel
adb_deeplink
.
- In „AppDelegate“ können Sie die Deep-Link-URL zurückerhalten und sie manuell an den folgenden Orten verarbeiten:
- Mit application:didFinishLaunchingWithOptions :Wenn die App nicht ausgeführt wird, wenn ein Push-Clickthrough-Vorgang erfolgt, können Sie die Push-Nutzlast aus launchOptions abrufen und die Deep-Link-URL befindet sich durch den Schlüssel adb_deeplink im Nutzlastverzeichnis.
- Die „delegate“-Methoden für RemotebenachrichtigungIn der didReceiveRemoteNotification: -App oder in der didReceiveRemoteNotification:fetchCompletionHandler: -App können Sie die URL abrufen, indem Sie auf das Verzeichnis userInfo mit dem adb_deeplink -Schlüssel zugreifen.
- Die „delegate“-Methoden für UNUserNotificationCenterIn der userNotificationCenter:didReceiveNotificationResponse:withCompletionHandler: -Methode können Sie die Push-Payload aus dem userInfo -Wörterbuch im adb_deeplink -Schlüssel abrufen.
Beispiel:
- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSDictionary *remoteNotification = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey]; if (remoteNotification && [remoteNotification isKindOfClass:[NSDictionary class]]) { NSString *deeplink = remoteNotification[@"adb_deeplink"]; // handle deep link url } return YES; } // app target < iOS 7 - (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { // only send the hit if the app is not active if (application.applicationState == UIApplicationStateInactive) { [ADBMobile trackPushMessageClickThrough:userInfo]; NSString *deeplink = userInfo[@"adb_deeplink"]; // handle deep link url } } // app target >= iOS 7 - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { if (application.applicationState == UIApplicationStateInactive) { [ADBMobile trackPushMessageClickThrough:userInfo]; NSString *deeplink = userInfo[@"adb_deeplink"]; // handle deep link url } ... } // if using UNUserNotificationCenterDelegate and device is running iOS 10 or newer - (void) userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { if ([response.notification.request.trigger isKindOfClass:UNPushNotificationTrigger.class]) { [ADBMobile trackPushMessageClickThrough:response.notification.request.content.userInfo]; NSString *deeplink = response.notification.request.content.userInfo[@"adb_deeplink"]; // handle deep link url } ... }