我一直在寻找解决方案,发现只有特定应用具有背景功能,即位置数据和播放音乐。假设我们有这个权限,有没有办法记录所有其他应用程序和主屏幕等的滑动量?最终目标是记录(总计)用户使用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)"
}
}
答案 0 :(得分:1)
不,你不能这样做。
在后台,您的视图不会显示,因此不会记录滑动。您无法访问其他应用视图。
只能在后台执行特定任务,请参阅Background Execution。
您不能保证您的应用程序将保持在后台状态 - 它可能会在任何时候被iOS终止。
从另一个角度来看:执行此操作的应用程序将以用户可能不会期望的方式使用处理器时间和内存,即使他们已经解散它,这不是一个表现良好的应用程序。当您的应用程序被用户解雇时,它需要停止或至少最小化处理器和内存使用量,Apple和iOS将强制执行此操作。
答案 1 :(得分:1)
不,你不能这样做。这很好。
如果您可以捕获其他应用程序的触摸输入,您还可以捕获键盘按下,这意味着:其他聊天应用程序的私人消息,密码输入等...