测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
Released最新版本 | 2017年2月 |
SwiftSwift版本 | 3.0 |
SPM支持SPM | ✗ |
由BrunoRocha维护。
Fenrir是一个数据分析伴侣,可以自动(或手动)跟踪您的应用,并在按钮、单元格或手势视图被触摸时自动生成事件 - 包括发生事件的屏幕的时间和名称,而无需最小设置。理想情况下,您应该使用它配合可以将其数据解析为使用图的系统。
要使用Fenrir,请使用.fenrirTag
属性标记视图
let button = UIButton()
button.fenrirTag = "subscriptionButton"
并在AppDelegate中启动它
Fenrir.instance.isTracking = true
Fenrir.instance.debugMode = true //Prints logs
Fenrir.instance.stackAmount = 3 //Optional - Amount of events to stack before firing the handler. Default is 1. You can set nil to only send events after the app goes into background.
Fenrir.instance.eventHandler = { event in
print(event)
//Send the event to your analytics providers, like Google Analytics
}
如果您正在使用自定义的stackAmount
并且不会使用自动模式,请添加以下调用
func applicationDidEnterBackground(_ application: UIApplication) {
Fenrir.instance.dispatchEventsIfNeeded()
}
func applicationWillTerminate(_ application: UIApplication) {
Fenrir.instance.dispatchEventsIfNeeded()
}
通过调用向Fenrir发送手动事件
Fenrir.instance.register(touchOn: someObject)
register()
接受一个FenrirTrackeable
对象。默认情况下,每个UIView及其子类都实现了此协议,但如果出于某种原因您想跟踪非可触摸的东西,您可以将此协议添加到它,然后手动调用此方法。或者,您可以直接使用标签调用它:
Fenrir.instance.register(touchWithTag: "aButton")
为了生成详细的事件,您还可以手动跟踪您的应用的流程,以便Fenrir可以告诉特定的操作发生在哪里。例如,这里我们正在跟踪一个视图控制器
override func viewDidAppear(_ animated: Bool) {
Fenrir.instance.registerFlow(self)
}
这将添加self
类的水印作为事件参数。
Fenrir可以骚动您应用中每个相关的调用来为您进行所有跟踪,而无需调用register()
、registerFlow()
和dispatchEventsIfNeeded()
方法。尽管这听起来非常酷,但目前它存在非常高的错误发生率,并且可能导致难以追踪的副作用。请在确定您的应用按预期工作后使用。
您可以在Info.plist
中添加一个名为fenrirAutoMode
的布尔值来启用自动跟踪:
为了充分发挥自动跟踪功能的潜力,可能需要进行一些更改。
UITableViewDelegates: 为自动跟踪单元格触摸,对 tableView(_:didSelectRowAt:)
的重写必须调用 super.tableView(_:didSelectRowAt:)
。这是因为 Fenrir 仅仅转置了原始调用。
导航按钮: 尽管不需要更改来检测触摸,但你可能想在 UIBarButtonItems
中使用 customView:
初始化器进行初始化。由于无法访问其内部按钮,这是在 Fenrir 自动模式下将 fenrirTag
放置在导航按钮中的唯一方式。
流跟踪: 和 UITableViewDelegates 一样,对 viewDidAppear(_:)
的重写也必须调用 super.viewDidAppear(_:)
,因为转置发生在原始 UIViewController 上。
使用 CocoaPods
use_frameworks!
pod 'Fenrir'
Fenrir 在 MIT 许可协议下发布。有关详细信息,请参阅 LICENSE。