测试已测试 | ✗ |
语言语言 | SwiftSwift |
许可 | MIT |
发布最新发布 | 2016 年 7 月 |
SPM支持 SPM | ✗ |
由 Lammert Westerhoff 维护。
截至创建此库(2016 年 6 月)为止,Google Analytics 库尚不支持 watchOS。为了仍然能够将您的分析数据发送到 Google 或任何其他分析服务,此库提供了一个可供 watchOS 应用程序使用的接口。它使用 WatchConnectivity 框架在底层将分析请求从手表应用程序发送到 iPhone 应用程序。然后它自动从 iPhone 应用程序发送到分析服务。
要运行示例项目,先克隆仓库,然后从 Example 目录运行 pod install
。
由于此库使用 WatchConnectivity 框架,它只能在 iOS 9+ 和 watchOS 2+ 上运行。尽管由于使用了 #availablity
,它与 iOS 8 兼容。
AnalyticsWatchAdapter 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中。
pod "AnalyticsWatchAdapter"
请在这两个目标中都包含这一行:iOS 目标和 WatchKit 扩展目标。
通过 Analytics
协议跟踪分析数据。无论是从 iOS 还是 watchOS 目标使用,使用方法都是相同的,尽管设置方式不同(见下面的章节)。通过全局的 analyticsInstance
单例实例获取此协议的实例。
要跟踪页面/屏幕视图,请使用以下方法:
analyticsInstance?.trackPageViewAsString("Welcome screen")
您也可以跟踪一个类别
analyticsInstance?.trackCategory("store", action: "purchase")
更多选项请见 Analytics
协议。
为了使此库正常工作,您必须在您的 iOS 目标中提供一个 Analytics
协议的实现。
这个库没有包含 Analytics
协议的默认实现。然而,在 GoogleAnalytics.swift 中的示例代码中包含了一个使用 Google Analytics 的实现。为了使用它,请将此文件复制到您的项目中,并为 'GoogleAnalytics' 添加 pod 依赖项。因为 GoogleAnalytics 库包含了静态库,它不能成为这个库的间接依赖项,请参考https://github.com/CocoaPods/CocoaPods/issues/2926。
您可以提供自己的 Analytics
实现。请确保将全局的 analyticsInstance
设置为指向您的实现的一个实例。
如果只希望从您的 iOS 目标发送分析事件,前一步就足够了。但如果您还希望从您的 watchos 目标(这实际上是这个库的目的)发送事件,则需要将 AnalyticsWatchReceiver
设置为您的 WCSession
的代理。有关如何设置 WCSession
的说明,请参考https://developer.apple.com/library/ios/documentation/WatchConnectivity/Reference/WCSession_class/ 中的文档。
您可以直接使用 AnalyticsWatchReceiver
作为代理 …
if WCSession.isSupported() {
let session = WCSession.defaultSession()
session.delegate = AnalyticsWatchReceiver.instance
session.activateSession()
}
… 或者如果您还需要从手表应用接收其他事件,则实现一个代理,将 session:didReceiveUserInfo:
方法转发给 AnalyticsWatchReceiver
。您可以使用 isAnalyticUserInfo
方法检查是否应该由 AnalyticsWatchReceiver
来处理。
func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) {
if AnalyticsWatchReceiver.isAnalyticUserInfo(userInfo) {
AnalyticsWatchReceiver.instance.session(session, didReceiveUserInfo: userInfo)
}
}
在您的 watchos 扩展目标中,您需要使用 WCSession
启动 AnalyticsWatchSender
。
let session = WCSession.defaultSession()
session.delegate = WatchModel.instance
session.activateSession()
AnalyticsWatchSender.start(session)
这将设置了一个 Analytics
协议的实现到全局的 analyticsInstance
中,并会将事件发送到手机。一个很好的地方是将此放在您初始界面控制器中的 awakeWithContext
方法中。
之后,您可以从手表应用发送分析事件,就像您从 iOS 应用发送一样。
analyticsInstance?.trackPageViewAsString("Welcome screen in Watch App")
Lammert Westerhoff, [email protected]
AnalyticsWatchAdapter 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。