Fenrir 0.0.5

Fenrir 0.0.5

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最新版本2017年2月
SwiftSwift版本3.0
SPM支持SPM

BrunoRocha维护。



Fenrir 0.0.5

  • 作者:
  • Bruno Rocha

Fenrir

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。