首页 > 解决方案 > 在 willPresentNotification 中修改推送通知生成器

问题描述

我现在使用 Salesforce Marketing Cloud iOS SDK (v4.9.7) 发送推送通知。我会将我的消息推送为“ qwe | 123 | zxc”。但是我想qwe只在通知生成器中显示“”。有什么办法吗?谢谢你。

    - (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler {

          if (completionHandler != nil) {

            if ([[ETPush pushManager] shouldShowLocalAlert] == YES) {

              //this is the notification payload 
              NSDictionary *userInfo = notification.request.content.userInfo;

              //get the msg from notification payload
              NSString *notificationMsg = [[userInfo valueForKeyPath:@"aps.alert"] objectForKey: @"body"];

              //extract and get the "qwe"
              NSArray *msgArr = [notificationMsg componentsSeparatedByString:@"|"];
              NSString *MyMessage = msgArr[0];

              //i have tried to replace the msg but failed
              notificationMsg = MyMessage;

              completionHandler(UNNotificationPresentationOptionAlert);
            }
            else {
              [[ETPush pushManager] handleNotification:notification.request.content.userInfo forApplicationState:[UIApplication sharedApplication].applicationState];
              completionHandler(UNNotificationPresentationOptionNone);
            }
          }
          else {
            [[ETPush pushManager] handleNotification:notification.request.content.userInfo forApplicationState:[UIApplication sharedApplication].applicationState];
          }

        }

标签: push-notificationapple-push-notifications

解决方案


是的,您可以在 iOS 中修改推送通知内容。

为此,请在您的应用中使用“通知服务扩展” 。在此您可以在didReceiveNotificationRequest中添加修改代码。

谢谢,希望对您有所帮助。


推荐阅读