Журнал push-уведомлений OneSignal с событием Firebase Analytics - PullRequest
0 голосов
/ 15 ноября 2018

Итак, моя цель - записывать в журнал любые push-уведомления, которые появляются в моем приложении.Я использую Firebase Analytics для регистрации любого события, и я уже знаю, как использовать его, используя:

Analytics.logEvent(FirebaseEventName, parameters: [:])

Но возможно ли зарегистрировать событие push-уведомлением?Я использую OneSignal в качестве службы push-уведомлений.

1 Ответ

0 голосов
/ 29 ноября 2018

Я нашел свой ответ.Но мой метод требовал участия 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]

И это значение устанавливается / объявляется в бэкэнд-части.

...