Я нашел свой ответ.Но мой метод требовал участия Backend .На что у меня нет ответа, потому что я не работаю с частью Backend.Следующий ответ: только для iOS part.
Итак, метод использует метод OneSignal и реализован в
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
Если вы уже используете OneSignal для iOS, вы уже должны написать приведенный ниже код в didFinishLaunchingWithOptions
OneSignal.initWithLaunchOptions(launchOptions, appId: ONE_SIGNAL_APPID, handleNotificationReceived: { (notification) in
let additionalData = notification?.payload.additionalData // Get additional data such as custom flaging from backend
if additionalData != nil { // A condition to avoid crash if additionalData is empty
let customFlag:String = additionalData!["tipe"] as! String // Get value of the custom flag, in this case mine is "tipe", and store the value to customFlag
Analytics.logEvent(customFlag, parameters: [:]) // Send Log Event to Firebase
}
}, handleNotificationAction: { (result) in
}, settings: [kOSSettingsKeyInFocusDisplayOption: OSNotificationDisplayType.none.rawValue,kOSSettingsKeyAutoPrompt : true])
Например, если вы печатаете AdditionalData значение должно выглядеть следующим образом:
[AnyHashable("tipe"): inbox]
И это значение устанавливается / объявляется в бэкэнд-части.