我想在我的 iOS 应用程序中发生的所有手势都得到通知

Posted

技术标签:

【中文标题】我想在我的 iOS 应用程序中发生的所有手势都得到通知【英文标题】:I want to get notified on all gestures that happen in my iOS app 【发布时间】:2016-06-01 10:24:16 【问题描述】:

我正在尝试在我的 ios 应用上发生的各种手势通知。

准确地说: 我想看看我的用户如何与我的应用交互 它可以帮助我查看我的控件是否制作精良和自我记录。 例如,它可以让我查看用户是否试图捏合/拉出旋钮而不是旋转旋钮等。

我目前尝试做的是在我的应用程序顶部添加另一个不可见的 UIWindow 并记录通过它的触摸事件(使用 touchesBegan,...),但这并不能告诉我 iOS 最终的结果是什么一个手势。

如果有人已经做了这样的事情或者有任何关于如何实现这样事情的提示,那会让我免于头痛;)

谢谢!

【问题讨论】:

我不想成为特定的控件(因为我的应用程序有很多控件),但我想看看是否有通用的方法来处理我的应用程序使用的所有内容(例如按钮、图像, ...) 没有——也不可能有。虽然您可能能够拦截并记录所有触摸,但它们的解释在很大程度上取决于上下文(并且部分可配置)。 我刚刚看到一些分析框架正在做我想要的,例如 AppSee:它们记录屏幕上发生的一切(任何手势,任何位置)。但我不想要完整的包裹 - 只是收到任何手势通知的事实;'( 【参考方案1】:

您可以创建一个 Web 服务,每当应用程序发生某些事情时,您都会在后台调用该服务。在您识别手势的地方,您可以将呼叫放在那里以及按钮操作等中。但这会使应用程序变慢,因为我不知道有任何其他库可以做到这一点,所以这是一种可能的解决方案。

【讨论】:

我已经完成了这部分;)(恕我直言,这很容易)我被困在的部分是可以识别屏幕上任何手势的部分,就像一些分析框架正在做的那样...... 【参考方案2】:

你可以看看Google Analytics SDK

为了跟踪您想要的内容,您必须向 Google Analytics(分析)发送自定义事件,只要您知道特定事件何时引发(例如按钮点击),您就可以跟踪所有内容。

这是一个关于如何发送自定义事件的示例:

// May return nil if a tracker has not already been initialized with a property
// ID.
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];

[tracker send:[[GAIDictionaryBuilder createEventWithCategory:@"ui_action"
                                                      action:@"button_press"
                                                       label:@"play"
                                                       value:nil] build]];

【讨论】:

是的,我有这部分 = 向我的服务器发送事件等。我正在寻找一种获取这些事件的方法,以便告诉我的服务器发生了什么 对不起,我误解了这个问题,然后看看如何覆盖HitTest方法,它应该可以让你跟踪你需要的一切,例如:***.com/questions/26364799/… 谢谢!我正在寻找它......这确实可以帮助我找到方法! 没问题!希望这就是你要找的:)

以上是关于我想在我的 iOS 应用程序中发生的所有手势都得到通知的主要内容,如果未能解决你的问题,请参考以下文章

我的应用程序所有屏幕中的字母手势识别

如何跳过最顶层视图的手势 - iOS

在 iOS 中检测 PAN 手势的方向

ios中图像上的文本手势

我想在我的 jquery 移动应用程序(phongap 构建)中打开一个外部链接,但所有外部链接都在浏览器中打开

iOS自动布局重置我所有的图像位置