使用 Firebase Analytics 事件记录 OneSignal 推送通知

Log OneSignal Push Notification with Firebase Analytics Event

所以我的目标是记录事件出现在我的应用程序上的任何推送通知。我正在使用 Firebase Analytics 记录任何事件,我已经知道如何使用它:

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

但是是否可以将事件记录为推送通知?我正在使用 OneSignal 作为我的推送通知服务。

我找到了答案。但是我的方法需要后端参与。我没有答案,因为我不处理后端部分。以下答案是 only just for iOS part only.

因此,该方法使用 OneSignal 方法,并在

中实现

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {

如果您已经在 iOS 使用 OneSignal,您应该已经在 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]

这个值在后端部分是set/declared。