首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >确定用户何时离开WinJS应用程序

确定用户何时离开WinJS应用程序
EN

Stack Overflow用户
提问于 2013-06-05 21:15:42
回答 2查看 662关注 0票数 2

我正在为内部WinJS应用程序构建一些非常基本的分析。这意味着,第三方分析解决方案既会过度使用和/或不可行和/或针对第三方提供商的使用条款,因为它们通常不允许获取有关用户的个人可识别信息,在这种情况下,这是业务需求。

我想要做的是确定在多个应用程序上花费了多少时间,以及在应用程序的特定区域中花费了多少时间。为此,我显然需要知道他们什么时候进进出出。

我发现的所有文档都说要使用WinJS.Application.oncheckpoint事件或Windows.UI.WebUI.WebUIApplication.onsuspending事件,这实际上是一个基本概念中的两个访问点。问题是,这并不能准确地反映用户何时离开应用程序!暂停似乎只有在用户切换到另一个应用程序之后,再加上大约10秒.如果系统想要的话。

如果用户只需按下Windows键就可以进入启动屏幕,然后坐在那里,应用程序将继续无限期地运行(对setInterval的调用能够影响状态),即使无法看到应用程序!

我知道这是一个边缘的情况,但有没有更可靠的方法来判断什么时候用户看不见应用程序,因为没有更好的定义?

备注:

  • 我看了Windows 8的Cordova 2.7代码,他们使用检查点事件来驱动Cordova暂停事件。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-06 05:00:50

应用生命周期上的应用程序可见性部分似乎解决了这一问题。这意味着注册“`msvisibilitychange”事件,以了解用户何时离开并移回您的应用程序。

代码语言:javascript
运行
复制
default.js:
document.addEventListener('msvisibilitychange', function ()
{
    console.log('visibility changed');
    console.log(document.visibilityState); // 'hidden' or 'visible'
});

此外,还需要处理悬吊恢复和激活事件。

代码语言:javascript
运行
复制
default.js:
Windows.UI.WebUI.WebUIApplication.onsuspending = function ()
{
    console.log('suspending');
}

Windows.UI.WebUI.WebUIApplication.onresuming= function ()
{
    console.log('resuming');
}    

不用说,需要处理订单的细微差别,以及/或事件缺席的情况。例如,如果用户离开并快速返回,就会收到visibilitychange事件。然而,如果用户不返回,挂起事件可能会在一段时间后出现。如果应用程序未被终止,则可能会出现恢复事件。否则,激活事件。

考虑到在特定页面上花费时间,页面readyunload方法应该有效。如果应用程序被暂停或终止,unload()将不会被调用。

票数 6
EN

Stack Overflow用户

发布于 2013-06-06 03:59:11

https://developer.mozilla.org/en-US/docs/Web/Reference/Events/visibilitychange

使用可见性更改事件来识别用户何时不能再看到应用程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16950028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档