💡
MPush
  • 💡MPush Documentation 💡
  • 🔑 API
    • Introduction
    • Authentication
    • Send Notifications
    • Topics
  • 🍏 iOS SDK
    • Introduction
    • Installation
    • Add Push Notification to your app
    • Integrate MPush
    • Rich Notifications
  • 📱 Android SDK
    • Introduction
    • Setup
    • Register a device
    • Subscribe to topics
  • 🔷Flutter SDK
    • Introduction
    • Installation
    • Android Setup
    • iOS Setup
      • Rich Notifications
      • Custom replacements
    • Flutter Setup
    • Request a token
    • Register to topics
    • Launch notification
Powered by GitBook
On this page
  • 1. Create an app group identifier
  • 2. Enable App Groups
  • 3. Set the app group identifier
  • 4. Update the notification extension code

Was this helpful?

  1. Flutter SDK
  2. iOS Setup

Custom replacements

PreviousRich NotificationsNextFlutter Setup

Last updated 3 years ago

Was this helpful?

To use the custom replacements function yoou will need to update the notification extension cerated in the previous step, here are the steps to follow.

1. Create an app group identifier

Go to developer.apple.com -> Certificates, Identifiers & Profiles -> Identifiers. Select App Groups and create a new one.

2. Enable App Groups

You will need then to enable app groups, with the app group created previously, both on developer.apple.com and on the project in XCode, under the Signing & Capabilities section.

You need to do this for the main app and for the notification extension.

3. Set the app group identifier

In your AppDelegate class set the app group identifier

SwiftMpushPlugin.appGroupIdentifier = "YOUR_APP_GROUP_ID"

4. Update the notification extension code

Update your notification extension code to manage the replacements

    override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
        self.contentHandler = contentHandler
        bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
        
        if let bestAttemptContent = bestAttemptContent {
            manageCustomReplacements(request: request, bestAttemptContent: bestAttemptContent)
            ...
        }
    }

    private func manageCustomReplacements(request: UNNotificationRequest, bestAttemptContent: UNMutableNotificationContent) {
        let appGroupIdentifier = "YOUR_APP_GROUP_ID"
        let customDatakey = "com.mumble.mpush.customData"
        guard let customData = UserDefaults(suiteName: appGroupIdentifier)?.object(forKey: customDatakey) as? [String: String] else {
            return
        }
        
        for (key, value) in customData {
            bestAttemptContent.title = request.content.title.replacingOccurrences(of: key, with: value)
            bestAttemptContent.body = request.content.body.replacingOccurrences(of: key, with: value)
        }
    }
🔷