基于IOS系统的页面生命周期日志统计方法及系统与流程
- 国知局
- 2024-07-31 23:10:51
本发明涉及app开发,具体地说是基于ios系统的页面生命周期日志统计方法及系统。
背景技术:
1、在ios应用程序开发中,每个页面都有其生命周期,它涵盖了页面从创建到销毁的整个过程。统计页面生命周期是应用程序开发和优化过程中的重要工具,它能够帮助你监测应用程序的性能、解决问题、改进用户体验,并且让你更好地了解用户行为和需求。
2、对于app的页面生命周期统计现在一般使用三方sdk或重写页面的生命周期函数。
3、使用三方sdk统计用户数据存在一定的风险性,例如用户隐私、数据安全、性能影响、版本兼容性、费用问题等等。
4、重写页面生命周期函数,需要在每个页面的视图控制器中重写相关的生命周期方法。这可能会导致代码冗余,尤其是在应用程序有许多页面的情况下,需要在多个地方添加相同的统计代码,导致后期代码维护困难,且容易遗漏页面。
5、如何在保证用户数据安全性和统计全面性的前提下、实现ios系统下app的页面生命周期日志统计,是需要解决的技术问题。
技术实现思路
1、本发明的技术任务是针对以上不足,提供基于ios系统的页面生命周期日志统计方法及系统,来解决如何在保证用户数据安全性和统计全面性的前提下、实现ios系统下app的页面生命周期日志统计的技术问题。
2、第一方面,本发明一种基于ios系统的页面生命周期日志统计方法,包括如下步骤:
3、创建统计管理类:创建一个名称为pagelifecyclestatistics的统计管理类,用于记录和处理页面生命周期统计信息;
4、创建uiviewcontroller的category分类:创建名称为uiviewcontroller+pagelifecycle的category,用于扩展uiviewcontroller类;
5、通过objective-c的runtime机制替换uiviewcontroller中原生的生命周期方法;
6、在替换的生命周期方法中调用统计管理类,基于统计管理类的统计方法收集数据并将收集的数据保存至统计管理类;
7、将收集的数据上传至服务器中。
8、作为优选,统计管理类中定义有数据结构,数据结构用于存储页面生命周期信息,页面生命周期信息包括页面名称、进入时间和离开时间。
9、作为优选,通过objective-c的runtime机制替换uiviewcontroller中原生的生命周期方法,包括如下步骤:
10、对于uiviewcontroller中每个原生的生命周期方法,在uiviewcontroller pagel的实现文件中编写新的生成周期方法,在新的生成周期方法中调用对应的原生生命周期方法,确保页面生命周期的正常执行;
11、通过method-swizzling方法将新的生命周期方法与原生生命周期方法进行交换;
12、其中,页面的原生生命周期方法包括:
13、viewdidload,所述viewdidload用于在视图控制器的视图加载完成后调用;
14、viewwillappear:,所述viewwillappear:用于视图可见之前被调用,理解为在视图即将显示在屏幕上、并且可以执行一些预备操作时被调用。
15、viewwilldisappear:,所述viewwilldisappear:用于在视图即将从屏幕上消失时调用;
16、dealloc:,所述dealloc:用于在当视图控制器被销毁时调用。
17、作为优选,将收集的数据上传至服务器时,在pagelifecyclestatistics类中添加方法uploaddatatoserver,uploaddatatoserver用于将收集的页面周期数据上传至服务器中;
18、在每次app启动时、通过uploaddatatoserver将记录的数据上传至服务器中。
19、第二方面,本发明一种基于ios系统的页面生命周期日志统计系统,用于通过如第一方面任一项所述的基于ios系统的页面生命周期日志统计方法对app的页面生命周期日志进行统计,所述系统包括:
20、统计管理类创建模块,所述统计管理类创建模块用于创建一个名称为pagelifecyclestatistics的统计管理类,用于记录和处理页面生命周期统计信息;
21、category分类创建模块,所述category创建模块用于创建uiviewcontroller的category分类,名称为uiviewcontroller+pagelifecycle,
22、用于扩展uiviewcontroller类;
23、方法替换模块,所述方法替换模块用于通过objective-c的runtime机制替换uiviewcontroller中原生的生命周期方法;
24、数据采集模块,所述数据采集模块用于在替换的生命周期方法中调用统计管理类,基于统计管理类的统计方法收集数据并将收集的数据保存至统计管理类;
25、数据上传模块,所述数据上传模块用于将收集的数据上传至服务器中。
26、作为优选,统计管理类中定义有数据结构,数据结构用于存储页面生命周期信息,页面生命周期信息包括页面名称、进入时间和离开时间。
27、作为优选,所述方法替换模块用于执行如下操作:
28、对于uiviewcontroller中每个原生的生命周期方法,在uiviewcontroller+pagel的实现文件中编写新的生成周期方法,在新的生成周期方法中调用对应的原生生命周期方法,确保页面生命周期的正常执行;
29、通过method-swizzling方法将新的生命周期方法与原生生命周期方法进行交换;
30、其中,页面的原生生命周期方法包括:
31、viewdidload,所述viewdidload用于在视图控制器的视图加载完成后调用;
32、viewwillappear:,所述viewwillappear:用于视图可见之前被调用,理解为在视图即将显示在屏幕上、并且可以执行一些预备操作时被调用。
33、viewwilldisappear:,所述viewwilldisappear:用于在视图即将从屏幕上消失时调用;
34、dealloc:,所述dealloc:用于在当视图控制器被销毁时调用。
35、作为优选,所述数据上传模块用于在pagelifecyclestatistics类中添加方法uploaddatatoserver,uploaddatatoserver用于将收集的页面周期数据上传至服务器中;
36、在每次app启动时、所述数据上传模块用于通过uploaddatatoserver将记录的数据上传至服务器中。
37、本发明的基于ios系统的页面生命周期日志统计方法及系统具有以下优点:
38、1、可以在不修改业务逻辑的情况下,将额外的日志统计功能添加到应用中,从而可以在应用中集中处理页面生命周期的统计;
39、2、开发者在需要统计页面生命周期的ios应用中,导入"uiviewcontroller+pagelifecycle"的category即可,无需修改原有的uiviewcontroller代码,实现代码无侵入性。
本文地址:https://www.jishuxx.com/zhuanli/20240730/196264.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表