我正在为内部 WinJS 应用程序构建一些非常基本的分析。这意味着第 3 方分析解决方案会过度杀伤和/或不可行和/或违反第 3 方提供商的使用条款,因为它们通常不允许捕获有关用户的个人身份信息,在这种情况下,这是一项业务要求。
我正在尝试做的事情是确定在多个应用程序以及应用程序某些区域内的区域中花费了多少时间。为此,我显然需要知道他们何时进入和离开。
我发现的所有文档都说要使用WinJS.Application.oncheckpoint
事件或Windows.UI.WebUI.WebUIApplication.onsuspending
事件,这实际上似乎是同一个基本概念的两个访问点。问题是这并不能准确反映用户何时离开应用程序!暂停似乎只有在用户切换到另一个应用程序后才会发生,再加上大约 10 秒......如果系统觉得这样的话。
如果用户只是按下 Windows 键进入开始屏幕并坐在那里,应用程序将继续无限期地运行(对 setInterval 的调用能够影响状态)即使看不到应用程序!
我知道这有点极端,但是由于缺乏更好的定义,有没有更可靠的方法来判断用户何时看不到应用程序?
笔记:
- 我确实查看了 Windows 8 的 Cordova 2.7 代码,他们正在使用检查点事件来驱动 Cordova 暂停事件。