2

我一直在寻找解决方案,发现只有特定的应用程序具有后台功能,即位置数据和播放音乐。假设我们有这个权限,有没有办法记录所有其他应用程序和主屏幕等的滑动量?最终目标是(总共)记录用户使用 Swift 滚动的距离。

到目前为止,我已经在应用程序中进行了测试,并且可以记录运行总计。但是,即使应用程序处于非活动状态,是否也可以实现这一点?

import UIKit

//test variable for storing scoll amount
var counter2 : Int = 0;

class ViewController: UIViewController {

    @IBOutlet weak var sCounter: UILabel!
    @IBOutlet weak var sMeasure: UILabel!
    @IBOutlet var scrollMeasuer: UIPanGestureRecognizer!

    @IBAction func scrollCounter (recognizer : UIPanGestureRecognizer) {
        //var counter : Int = 0

        let translation = recognizer.translationInView(self.view)
        sMeasure.text = "\(translation)"

        counter2 = abs(Int(abs(translation.x) + abs(translation.y)) + counter2)
        sCounter.text = "\(counter2)"
    }
}
4

2 回答 2

1

不,你不能这样做。这很好。

如果您可以捕获其他应用程序的触摸输入,您还可以捕获键盘按下,这意味着:其他聊天应用程序的私人消息、密码输入等......

于 2016-04-03T10:50:07.220 回答
1

不,你不能这样做。

在后台时,您的视图不会显示,因此它们不会记录滑动。您无法访问其他应用程序视图。

只能在后台执行特定任务,请参阅后台执行

您不能保证您的应用程序将保持在后台状态 - 它可能随时被 iOS 终止。

从另一个角度来看:这样做的应用程序会以用户可能无法预料的方式使用处理器时间和内存,即使他们已经将其关闭,这不是一个表现良好的应用程序。当您的应用程序被用户关闭时,它需要停止或至少最小化处理器和内存使用量,Apple 和 iOS 将强制执行此操作。

于 2016-04-03T08:01:43.340 回答