如何知道页面浏览时长?

1. 前言 页面浏览时长是用于统计用户在页面的停留时长。对于神策分析 iOS SDK 而言,在没有推出页面浏览时长自动采集功能之前,客户是通过手动调用开始计时和结束计时的相关接口实现页面浏览时长采集的。这种手动采集的方式对客户业务代码侵入性大,并且客户使用的成本较高。 因此,为了解决上述问题,神策分析 iOS SDK 3.1.5[1] 版本推出了页面浏览时长自动采集功能[2]。该功能无需用户手动调用接口,即可实现自动采集页面浏览时长。 在实现此功能的过程中,我们做了很多尝试,下面先来看一下自动采集页面浏览时长的两种方案。 2. 采集方案分析 2.1. 方案一 此方案主要是针对单页面的情况,采集原理是:当进入某个页面或者应用进入前台时定时器开始计时;当应用退到后台或者进入一个新的页面时(此时视为当前页面已经消失)结束计时。 具体的采集逻辑如下: 当收到应用进入前台的通知时,定时器开始计时; 当执行到页面的生命周期方法 - viewDidAppear: 时,触发上一个页面的关闭事件并记录页面浏览时长,同时开始当前页面的计时; 当收到应用进入后台的通知时,触发当前页面的关闭事件并记录页面浏览时长。