Dom*_*Dom 6 firebase firebase-analytics swiftui
我最近在我的 SwiftUI 应用程序中安装了 Firebase Analytics。除了自动屏幕视图之外,一切都运行良好。我是否有义务为我想要跟踪的每个视图调用 AnalyticsEventScreenView?
Pet*_*ese 14
是的 - 由于 SwiftUI 视图的构造方式,Analytics 只能看到NotifyingMulticolumnSplitViewController.
您必须手动发送屏幕视图(如文档中所述),如下所示:
import SwiftUI
import Firebase
struct ContentView: View {
var body: some View {
NavigationView {
List {
NavigationLink(destination: OneView()) {
Text("One")
}
NavigationLink(destination: TwoView()) {
Text("Two")
}
}
.navigationTitle("Choose a screen")
.onAppear() {
Analytics.logEvent(AnalyticsEventScreenView,
parameters: [AnalyticsParameterScreenName: "\(ContentView.self)",
AnalyticsParameterScreenClass: "\(ContentView.self)"])
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Run Code Online (Sandbox Code Playgroud)
import SwiftUI
import Firebase
struct OneView: View {
var body: some View {
Text("1")
.onAppear() {
Analytics.logEvent(AnalyticsEventScreenView,
parameters: [AnalyticsParameterScreenName: "\(OneView.self)",
AnalyticsParameterScreenClass: "\(OneView.self)"])
}
}
}
struct OneView_Previews: PreviewProvider {
static var previews: some View {
OneView()
}
}
Run Code Online (Sandbox Code Playgroud)
coh*_*n72 13
Firebase9.0.0 引入了特定于SwiftUIBeta 版的新 API。现在有一个View扩展实现了ViewModifier为您提供一些功能的:
func analyticsScreen(name: String,
class: String = "View",
extraParameters: [String: Any] = [:])
Run Code Online (Sandbox Code Playgroud)
例如:
struct MyView: View {
var body: some View {
Text("Hey")
.analyticsScreen(
name: "Screen Name",
extraParameters: [
AnalyticsParameterScreenName: "\(type(of: self))",
AnalyticsParameterScreenClass: "\(type(of: self))"
]
)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6421 次 |
| 最近记录: |