![ab2ecdd7eea1323b5d969699a562e3f0.png](https://i-blog.csdnimg.cn/blog_migrate/1ac4f754d3fbe9d38e5d8a50b6fcdfaa.jpeg)
(1)应用程序退出
通过上面介绍的内容可知,当一个 iOS 应用程序退出时,就意味着该应用程序进入了“后台”,即处于 Background 状态。
因此,对于实现 $AppEnd 事件的全埋点,我们只需要注册监听UIApplicationDidEnterBackgroundNotification 通知,
然后在收到通知时触发 $AppEnd 事件,即可达到 $AppEnd 事件全埋点的效果。
(2)应用程序启动
应用程序的启动,一般情况下,大致可以分为两类场景:
• 冷启动
• 热启动(从后台恢复)
不管是冷启动还是热启动,触发 $AppStart 事件的时机,都可以理解成是当“应用程序开始进入前台并处于活动状态”, 也即前文介绍的 Active 状态。
因此,为了实现 $AppStart 事件的全埋点,我们可以注册监听 UIApplicationDidBecomeActiveNotification 本地通知, 然后在其相应的回调方法里触发 $AppStart 事件。
通过测试可以发现,仍有以下几个特殊场景存在问题:
• 下拉通知栏并上滑,会触发 $AppStart 事件
• 上滑控制中心并下拉,会触发 $AppStart 事件
• 双击 Home 键进入切换应用程序页面,最后又选择当前应用程序ÿ