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 Remotebenachrichtigung
In 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 UNUserNotificationCenter
In 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
}
...
}