使用 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。
所以我的目标是记录事件出现在我的应用程序上的任何推送通知。我正在使用 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。