一种iOS操作系统中页面使用时长统计的方法与流程

文档序号:32490809发布日期:2022-12-10 02:42阅读:222来源:国知局
一种iOS操作系统中页面使用时长统计的方法与流程
一种ios操作系统中页面使用时长统计的方法
技术领域
1.本发明属于移动终端技术领域,具体涉及一种ios操作系统中页面使用时长统计的方法。


背景技术:

2.在ios(iphone os)操作系统开发过程中,经常需要统计某个应用程序app的某个页面的使用时长,比如资讯类页面,需要用户阅读时间达到设定时长,才会下发金币奖励;活动类页面,需要阅读时间达到设定时长,才可以完成活动任务;重要协议页面,需要用户阅读时间达到设定时长,才能确认同意协议等;再比如某个应用程序app的防沉迷模式,该模式限制用户仅可以使用设定时间长度,因此,需要对用户使用时长进行统计。由此可见,应用程序开发中,普遍需要设计页面使用时长统计的功能。
3.现有技术中,主要采用以下方法对页面使用时长进行统计:对于内嵌html5页面,由html5端对页面使用时长进行统计。此种方式具有以下问题:在html5端,容易被用户破解,即使当运行html5页面的应用程序挂在后台时,仍然可以继续对html5页面的使用时长进行计时,从而导致页面使用时长出现错误。另外,对于同一个应用程序,当有多个页面需要统计使用时长时,不同页面采用不同的时长统计方法,因此,难以维护,容易产生潜在问题。
4.因此,在ios操作系统中,如何能够准确高效地对应用程序的页面进行使用时长统计,是目前急需解决的问题。


技术实现要素:

5.针对现有技术存在的缺陷,本发明提供一种ios操作系统中页面使用时长统计的方法,可有效解决上述问题。
6.本发明采用的技术方案如下:
7.本发明提供一种ios操作系统中页面使用时长统计的方法,包括以下步骤:
8.步骤1,ios操作系统中安装的每个应用程序具有以下状态:启动状态,运行状态和完全退出状态;其中,运行状态包括前台运行状态和后台运行状态;ios操作系统对其安装的每个应用程序的状态进行监听;
9.当所述ios操作系统监听到某个应用程序为启动状态时,ios操作系统在ios端初始化生成与该应用程序对应的时长统计控制器,并同时创建与该应用程序对应的计时器字典timermdic和累计时长字典durationmdic;
10.步骤2,所述应用程序通过调用所述ios操作系统的时长统计控制器,完成对所述应用程序运行的页面page的计时控制,具体包括:
11.步骤2.1,所述应用程序的某个页面page在运行过程中,如果满足计时操作控制的触发条件,其中,所述计时操作控制包括以下类型:开始计时操作,暂停计时操作,恢复继续计时操作和停止计时操作,则所述应用程序向所述ios操作系统发送对页面page进行计时
操作控制的请求,该请求中携带有页面page的id和应用程序id;
12.步骤2.2,所述ios操作系统查找所维护的所有时长统计控制器,得到与该应用程序id对应的时长统计控制器,并向所述时长统计控制器转发所述对页面page进行计时操作控制的请求;
13.步骤2.3,所述时长统计控制器根据计时操作控制类型,分别执行以下操作:
14.1)如果计时操作控制类型为开始计时操作,则所述时长统计控制器根据页面page的id,查找计时器字典timermdic,判断所述计时器字典timermdic中,是否存在与该页面page的id对应的计时器,如果有,表明出现系统错误,通过所述ios操作系统向所述应用程序返回系统错误的提示信息;如果没有,则创建与所述页面page唯一对应的计时器,并将所述计时器加入到所述计时器字典timermdic,所述计时器具有唯一的计时器标识;然后,启动所述计时器,开始对该页面page的使用时长进行计时;
15.2)如果计时操作控制类型为暂停计时操作或恢复继续计时操作,则所述时长统计控制器根据页面page的id,查找计时器字典timermdic,得到与所述页面page的id对应的计时器,并控制所述计时器暂停计时或恢复继续计时;
16.3)如果计时操作控制类型为停止计时操作,则所述时长统计控制器根据页面page的id,查找计时器字典timermdic,得到与所述页面page的id对应的计时器,得到所述计时器的累计时长结果,并将所述页面page的id以及对应的累计时长结果存储到所述累计时长字典durationmdic,然后,所述时长统计控制器从所述计时器字典timermdic中删除所述计时器;
17.步骤2.4,当所述应用程序的页面page需要获得时长统计结果时,所述应用程序向所述ios操作系统发送获取页面page的时长统计结果的获取请求;该请求中携带有页面page的id和应用程序id;
18.所述ios操作系统查找所述累计时长字典durationmdic,得到所述页面page的时长统计结果,并返回给所述应用程序;所述应用程序将所述时长统计结果返回给所述页面page;
19.步骤3,当所述ios操作系统监听到某个应用程序为完全退出状态时,ios操作系统在ios端销毁与所述应用程序对应的时长统计控制器、计时器字典timermdic和累计时长字典durationmdic,释放资源。
20.优选的,所述页面page包括html5页面和ios原生页面。
21.优选的,所述计时器为gcd计时器。
22.优选的,暂停计时操作的触发条件,通过以下方式获得:
23.对于已开始计时操作的页面page,对该页面page的状态进行监听,如果监听到该页面page被退出,则为满足暂停计时操作的触发条件。
24.优选的,页面page被退出包括两种情况,第一种:运行该页面page的应用程序仍然处于前台运行状态,但所述页面page被切换退出;第二种:运行该页面page的应用程序由前台运行状态转为后台运行状态。
25.优选的,恢复继续计时操作的触发条件,通过以下方式获得:
26.对于已暂停计时操作的页面page,对该页面page的状态进行监听,如果监听到该页面page激活为显示状态,则为满足恢复继续计时操作的触发条件。
27.优选的,页面page激活为显示状态包括两种情况,第一种:运行该页面page的应用程序仍然处于前台运行状态,由其他页面切换为所述页面page时,所述页面page激活为显示状态;第二种:运行该页面page的应用程序由后台运行状态转为前台运行状态时,当前显示的页面被激活。
28.本发明提供的一种ios操作系统中页面使用时长统计的方法具有以下优点:
29.本发明的ios操作系统中页面使用时长统计的方法,能够准确高效的对应用程序的页面进行使用时长统计,进而提高用户的使用体验。
附图说明
30.图1为本发明提供的一种ios操作系统中页面使用时长统计的方法的流程示意图;
31.图2为本发明提供的一种ios操作系统中页面使用时长统计的方法的架构图;
32.图3为本发明提供的一种ios操作系统中页面使用时长统计的方法的计时控制操作的原理图。
具体实施方式
33.为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
34.本发明提供一种ios操作系统中页面使用时长统计的方法,参考图1、图2和图3,包括以下步骤:
35.步骤1,ios操作系统中安装的每个应用程序具有以下状态:启动状态,运行状态和完全退出状态;其中,运行状态包括前台运行状态和后台运行状态;ios操作系统对其安装的每个应用程序的状态进行监听;
36.当所述ios操作系统监听到某个应用程序为启动状态时,ios操作系统在ios端初始化生成与该应用程序对应的时长统计控制器,并同时创建与该应用程序对应的计时器字典timermdic和累计时长字典durationmdic;
37.也就是说,本发明中,ios操作系统运行多个应用程序,对于每个应用程序,配置唯一对应的时长统计控制器、计时器字典timermdic和累计时长字典durationmdic。当该应用程序完全退出时,将对应的时长统计控制器、计时器字典timermdic和累计时长字典durationmdic销毁,及时释放资源,具有易维护的优点。
38.作为一种具体实现方式,当所述ios操作系统监听到某个应用程序为启动状态时,ios操作系统在ios端初始化生成时长统计控制器单例,用于对其管理的所有计时器进行控制。计时器字典timermdic,用于保存已创建的计时器;累计时长字典durationmdic,用于保存每个计时器得到的页面使用时长结果。
39.步骤2,所述应用程序通过调用所述ios操作系统的时长统计控制器,完成对所述应用程序运行的页面page的计时控制,具体包括:
40.步骤2.1,所述应用程序的某个页面page在运行过程中,如果满足计时操作控制的触发条件,其中,所述计时操作控制包括以下类型:开始计时操作,暂停计时操作,恢复继续计时操作和停止计时操作,则所述应用程序向所述ios操作系统发送对页面page进行计时
操作控制的请求,该请求中携带有页面page的id和应用程序id;
41.本步骤中,暂停计时操作的触发条件,通过以下方式获得:对于已开始计时操作的页面page,对该页面page的状态进行监听,如果监听到该页面page被退出,则为满足暂停计时操作的触发条件。在实际应用中,页面page被退出包括两种情况,第一种:运行该页面page的应用程序仍然处于前台运行状态,但所述页面page被切换退出;第二种:运行该页面page的应用程序由前台运行状态转为后台运行状态。
42.本步骤中,恢复继续计时操作的触发条件,通过以下方式获得:对于已暂停计时操作的页面page,对该页面page的状态进行监听,如果监听到该页面page激活为显示状态,则为满足恢复继续计时操作的触发条件。在实际应用中,页面page激活为显示状态包括两种情况,第一种:运行该页面page的应用程序仍然处于前台运行状态,由其他页面切换为所述页面page时,所述页面page激活为显示状态;第二种:运行该页面page的应用程序由后台运行状态转为前台运行状态时,当前显示的页面被激活。
43.步骤2.2,所述ios操作系统查找所维护的所有时长统计控制器,得到与该应用程序id对应的时长统计控制器,并向所述时长统计控制器转发所述对页面page进行计时操作控制的请求;
44.步骤2.3,所述时长统计控制器根据计时操作控制类型,分别执行以下操作:
45.1)如果计时操作控制类型为开始计时操作,则所述时长统计控制器根据页面page的id,查找计时器字典timermdic,判断所述计时器字典timermdic中,是否存在与该页面page的id对应的计时器,如果有,表明出现系统错误,通过所述ios操作系统向所述应用程序返回系统错误的提示信息;如果没有,则创建与所述页面page唯一对应的计时器,并将所述计时器加入到所述计时器字典timermdic,所述计时器具有唯一的计时器标识;然后,启动所述计时器,开始对该页面page的使用时长进行计时;
46.开始计时操作,具体可通过以下函数实现:-(void)starttimerwithkey:(nsstring*)key。该函数主要用于初始化创建gcd计时器。key表示计时器唯一标识,根据key判断是否已存在同一标识的计时器,如存在则提示错误;如不存在,则创建gcd计时器对象,根据key将计时器存入timermdic,后续如果需要对这个计时器进行暂停、继续、停止等操作,可以根据key直接获得计时器。
47.gcd计时器根据设定的计时间隔计时,例如,1秒计时1次,每次计时后将累计计时加1,存入durationmdic字典。
48.开始计时操作,也可以通过以下函数实现:-(void)starttimerwithkey:(nsstring*)key time:(nsinteger)sec;该计时器与-(void)starttimerwithkey:(nsstring*)key提供的计时器的区别在于,该计时器根据sec限定计时器执行时间间隔,可以减少性能消耗。
49.2)如果计时操作控制类型为暂停计时操作或恢复继续计时操作,则所述时长统计控制器根据页面page的id,查找计时器字典timermdic,得到与所述页面page的id对应的计时器,并控制所述计时器暂停计时或恢复继续计时;
50.暂停计时操作具体可通过以下函数实现:-(void)pausetimerwithkey:(nsstring*)key;该方法主要用于暂停gcd计时器,根据key从timermdic取出对应的gcd计时器,使用dispatch_suspend来暂停计时器。
51.恢复继续计时操作具体可通过以下函数实现:-(void)resumetimerwithkey:(nsstring*)key;该方法主要用于继续已暂停的gcd计时器,根据key从timermdic取出对应的gcd计时器,使用dispatch_resume来继续已暂停的计时器。
52.3)如果计时操作控制类型为停止计时操作,则所述时长统计控制器根据页面page的id,查找计时器字典timermdic,得到与所述页面page的id对应的计时器,得到所述计时器的累计时长结果,并将所述页面page的id以及对应的累计时长结果存储到所述累计时长字典durationmdic,然后,所述时长统计控制器从所述计时器字典timermdic中删除所述计时器;
53.停止计时操作具体可通过以下函数实现:-(void)stoptimerwithkey:(nsstring*)key;该方法主要用于停止gcd计时器,根据key从timermdic取出对应的gcd计时器,使用dispatch_source_cancel停止计时器,并将该gcd计时器从timermdic中移除。
54.步骤2.4,当所述应用程序的页面page需要获得时长统计结果时,所述应用程序向所述ios操作系统发送获取页面page的时长统计结果的获取请求;该请求中携带有页面page的id和应用程序id;
55.所述ios操作系统查找所述累计时长字典durationmdic,得到所述页面page的时长统计结果,并返回给所述应用程序;所述应用程序将所述时长统计结果返回给所述页面page;
56.计时时长获取方法,具体可通过以下函数实现:-(nsinteger)durationwithkey:(nsstring*)key。该方法主要用来返回统计的时长,根据key从durationmdic取出统计的累计时长,返回给调用方。
57.步骤3,当所述ios操作系统监听到某个应用程序为完全退出状态时,ios操作系统在ios端销毁与所述应用程序对应的时长统计控制器、计时器字典timermdic和累计时长字典durationmdic,释放资源。
58.需要强调的是,本发明中涉及到的页面page包括html5页面和ios原生页面。
59.作为一种优选方式,本发明中创建的计时器为gcd计时器,gcd计时器具有更高的计时精度,能够有效降低统计时长误差,提高计时准确性。另外,相对于nstimer必须运行在runloop上,容易受运行环境的影响,还可能因为循环引用而导致内存泄露,而采用gcd计时器,则可以运行在独立线程上,能够防止运行环境的影响和应用内存泄露的出现,更加高效准确地对使用时长进行统计。
60.本发明提供的ios操作系统中页面使用时长统计的方法,如果页面为内嵌html5页面,在内嵌html5页面中,ios端和html5端可以通过系统原生的方法进行交互,html5端可以通过javascript调用window.webkit.messagehandlers.func.postmessage(params),来调用ios端提供的如上方法,进而实现对时长的统计。ios端可以通过调用-(void)evaluatejavascript:(nsstring*)javascriptstring completionhandler:(void(^)(id,nserror*))completionhandler这个方法来回调html5的方法,告知html5统计时长的情况。另外,在原生页面,ios端可使用如上方法,通过时长统计控制器直接对时长统计进行控制。
61.本发明提供一种ios操作系统中页面使用时长统计的方法,对于html5页面和ios原生页面等各种应用程序运行的页面,将页面时长控制统计操作统一放在ios操作系统端,由ios操作系统中的时长统计控制器,对用于对应用程序运行页面使用时长计时的各个计
时器进行统一控制,因此,具有以下优点:(1)可以准确地统计页面使用时长,保证页面时长统计按程序需求实行,不会因为机型或操作原因导致页面时长统计不准确。(2)可以避免用户通过不正当操作违规改变页面使用使长,保证页面使用时长结果的准确性;(3)通过时长统计控制器统一对各个计时器进行控制,保证所有计时器准确运行,如果出现程序问题,可方便定位问题。
62.因此,通过本发明的ios操作系统中页面使用时长统计的方法,能够准确高效的对应用程序的页面进行使用时长统计,进而提高用户的使用体验。
63.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1