在 iOS 上将 Google Analytics 与 Swift 结合使用
Posted
技术标签:
【中文标题】在 iOS 上将 Google Analytics 与 Swift 结合使用【英文标题】:Using Google Analytics with Swift on iOS 【发布时间】:2014-11-07 10:48:58 【问题描述】:我正在尝试将 GA 用于 Swift 项目。
我正确安装了 SDK,但由于找不到某些对象,我无法手动发送屏幕测量值。
这是谷歌给出的代码:
// May return nil if a tracker has not already been initialized with a
// property ID.
id tracker = [[GAI sharedInstance] defaultTracker];
// This screen name value will remain set on the tracker and sent with
// hits until it is set to a new value or to nil.
[tracker set:kGAIScreenName
value:@"Home Screen"];
// New SDK versions
[tracker send:[[GAIDictionaryBuilder createScreenView] build]];
这是我的代码:
let tracker = GAI.sharedInstance()
tracker.setValue(kGai, forKey: "/index")
tracker.send(GAIDictionaryBuilder.createScreenView().build)
这是我得到的错误:
Use of unresolved identifier 'kGAIScreenName'
Use of unresolved identifier 'GAIDictionaryBuilder'
我在我的 BridingHeader 中导入了 GAI.h 并将框架添加到构建文件中,这方面没有错误。
谢谢!
【问题讨论】:
你在你的头文件和 GAI 文件中集成了 GAIDictionaryBuilder.h 您似乎忘记了第一行中的defaultTracker
部分。另外,您是否设置了桥接头?
【参考方案1】:
好的,所以我只是将 GAI.h 添加到我的桥接头中,但没有添加其他头文件。 感谢 DPLusV,我也没有正确地将 Obj-C 翻译成 Swift。
这是我的最终代码:
let tracker = GAI.sharedInstance().defaultTracker
tracker.set(kGAIScreenName, value: "/index")
tracker.send(GAIDictionaryBuilder.createScreenView().build())
[编辑] SWIFT 3
let tracker = GAI.sharedInstance().defaultTracker
tracker?.set(kGAIScreenName, value: "/index")
let build = (GAIDictionaryBuilder.createScreenView().build() as NSDictionary) as! [AnyHashable: Any]
tracker?.send(build)
【讨论】:
谢谢,这对我有用。希望谷歌为 swift 添加了一些文档 - 因为我不知道 ObjC 我所能做的就是猜测如何将它转换为 swift 语法...... 确保您#import "GAIFields.h"
以便使用kGAIScreenName
@我在 Swift 1.2 中使用 Xcode 6.3beta 并收到以下错误:Cannot invoke 'send' with an argument list of type '(NSMutableDictionary!)'
这里有一个类似的问题:***.com/questions/29591930/…
@JonathanEllis 还有 "#import "GAIDictionaryBuilder.h"【参考方案2】:
我按照
中的说明进行操作https://developers.google.com/analytics/devguides/collection/ios/v3/?ver=swift
直到 pod 安装
我已经有一个 GoogleService-Info.plist 文件在那里我启用了谷歌分析
然后我做了一些hit and trial方法让它起作用
最后我找到了一些对我有用的东西
let googleAnalytics : GAITracker = GAI.sharedInstance().trackerWithTrackingId("UA-XXXXXXXX-X")
GAI.sharedInstance().trackUncaughtExceptions = true
googleAnalytics.set(kGAIScreenName, value: screenName)
let builder = GAIDictionaryBuilder.createScreenView()
googleAnalytics.send(builder.build() as [NSObject : AnyObject])
我将这段代码放在视图控制器中任何需要的地方。
希望这对某人有所帮助。谢谢
【讨论】:
从github.com/phanisai4u/sampleAppsSwift/tree/master/…获取示例应用以上是关于在 iOS 上将 Google Analytics 与 Swift 结合使用的主要内容,如果未能解决你的问题,请参考以下文章
Google Analytics(分析)iOS和Alamofire以及cocoapods
iOS 上 Google/Analytics 的最新 pod 版本要我安装 Firebase
Google Analytics iOS - 打开 URL 挂起