CN108347456B - 一种应用程序下载方法及装置 - Google Patents
一种应用程序下载方法及装置 Download PDFInfo
- Publication number
- CN108347456B CN108347456B CN201710053098.0A CN201710053098A CN108347456B CN 108347456 B CN108347456 B CN 108347456B CN 201710053098 A CN201710053098 A CN 201710053098A CN 108347456 B CN108347456 B CN 108347456B
- Authority
- CN
- China
- Prior art keywords
- application program
- downloading
- download
- page
- application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请提供了一种应用程序下载方法,包括:监听针对主应用程序页面上至少一个引流模块对应的至少一个应用程序的下载事件;当监听到针对其中一个应用程序的下载事件时,调用主应用程序的应用程序下载接口下载应用程序;接收主应用程序生成的下载任务标记并建立下载任务标记与应用程序的对应关系;接收主应用程序反馈的包含下载任务标记的下载状态信息;根据所述下载状态信息包含的下载任务标记确定下载状态信息对应的应用程序;以及将所述下载状态信息反馈给所述主应用程序页面上与确定的应用程序对应的引流模块,以使其更新所述引流模块显示的所述应用程序的下载状态。本申请还提供了应用程序的下载装置。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种应用程序下载方法及装置。
背景技术
插件(Plug-in)是遵循一定规范的应用程序接口编写出来的程序。插件只能运行在程序规定的应用程序系统平台下,而且必须依赖于应用程序才能发挥自身功能,仅靠插件自身是无法正常运行的。然而,相反地,应用程序并不需要依赖插件就可以运行。这样一来,插件就可以加载到应用程序上并且动态更新而不会对应用程序造成任何改变。基于上述特点,插件已经成为一种十分常用的应用程序开发方式。
目前,在常用的一些应用程序系统平台上,例如微信、手机QQ、微博等社交类应用程序系统平台上,已开发出各种各样的插件。在这些插件中,有一些插件是通过超文本标记语言(HTML,Hyper Text Mark-up Language)5的方式实现的,例如,微信平台上的腾讯新闻插件以及新浪微博上的新浪新闻插件等就是通过HTML5编写的。通常情况下,激活这类插件后将通过页面方式显示相应的内容。一般情况下,这种页面可以被称为插件底层页面。
通常,在插件底层页面上可以包含一个或者多个引流模块。其中,每个引流模块可以对应一个应用程序。引流模块主要用于引导移动终端的用户安装其对应的应用程序。当用户点击插件底层页面上某个引流模块而且当前的移动终端上并未安装与该引流模块对应的应用程序时,该引流模块将会触发该引流模块对应的应用程序的下载。例如,在微信平台上腾讯新闻的插件底层页面上通常会显示一个或多个引流模块。这些引流模块通常会显示为“点击下载安装应用程序A”或者“下载应用程序A,查看**信息”等等形式的提示语。这些引流模块可以对应同一个应用程序也可以对应不同的应用程序,例如,腾讯新闻应用、腾讯视频应用等等。当用户点击某个引流模块时,该引流模块会调用微信的应用程序下载接口下载该引流模块对应的应用程序。
然而,面对上述插件底层页中日益复杂化的应用程序下载需求,在一个插件底层页面上,会存在数个引流模块对应同一个应用程序的情况,也会存在数个引流模块对应不同应用程序的情况。然而,当前插件所在的应用程序系统平台,比如微信和手机QQ,在某些操作系统(比如在安卓系统)中,只提供了简单的接口使开发者具备后台下载应用的能力,如果直接套用,则会造成下载进度混乱、页面回调错误等问题。
发明内容
本发明实例提出了一种应用程序下载方法,包括:
监听针对主应用程序页面上至少一个引流模块对应的至少一个应用程序的下载事件;
当监听到针对其中一个应用程序的下载事件时,调用主应用程序的应用程序下载接口下载所述应用程序;
接收主应用程序反馈的下载所述应用程序时生成的下载任务标记;
建立所述下载任务标记与所述应用程序的对应关系;
接收主应用程序反馈的包含下载任务标记的下载状态信息;
根据所述下载状态信息包含的下载任务标记确定所述下载状态信息对应的应用程序;以及
将所述下载状态信息反馈给所述主应用程序页面上与确定的应用程序对应的引流模块,以使其更新所述引流模块所显示的所述应用程序的下载状态。
本申请实例还提出了一种应用程序下载装置,包括:监听接口以及下载管理单元;其中,
所述监听接口用于监听针对主应用程序页面上至少一个引流模块对应的至少一个应用程序的下载事件;
所述下载管理单元用于在监听接口监听到针对其中一个应用程序的下载事件时,调用主应用程序的应用程序下载接口下载所述应用程序;
所述监听接口进一步用于接收主应用程序反馈的下载所述应用程序时生成的下载任务标记,并接收主应用程序反馈的包含下载任务标记的下载状态信息;
所述下载管理单元进一步建立所述下载任务标记与所述应用程序的对应关系以及根据所述下载状态信息包含的下载任务标记确定所述下载状态信息对应的应用程序;以及
所述监听模块进一步将所述下载状态信息反馈给所述主应用程序页面上与确定的应用程序对应的引流模块,以使其更新所述引流模块所显示的所述应用程序的下载状态。
采用本申请提出的上述方案,可以实现基于页面上引流模块的应用程序的下载,而且通过为应用程序的下载生成下载任务标记,并建立下载任务标记和被下载应用程序的关系,从而完成对下载任务的管理,避免在多个应用程序同时进行下载时出现下载的混乱,提高下载转化率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实例的系统结构示意图;
图2为本申请一实例的应用程序下载方法流程图;
图3为本申请一实例中的插件底层页面的示例;
图4为本申请一实例中的在应用程序下载过程中插件底层页面的示例;
图5为本申请一实例的应用程序下载装置结构示意图;以及
图6为本申请一实例的应用程序下载装置的硬件结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了描述上的简洁和直观,下文通过描述若干代表性的实施例来对本发明的方案进行阐述。实施例中大量的细节仅用于帮助理解本发明的方案。但是很明显,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。
如前所述,对于某些操作系统,比如安卓系统,现有的在插件底层页面上下载应用程序时,特别是在进行多任务下载时,会出现下载进度混乱和页面回调错误等问题。比如,微信平台上的腾讯新闻插件在移动终端上加载完成HTML5页面后,用户依次点击了该HTML5页面上应用程序A的引流模块,应用程序B的引流模块以及应用程序C的引流模块。这样,在检测到上述用户的点击操作后,微信平台将同时进行三个应用程序的下载,也即形成下载任务A、下载任务B和下载任务C。但是,由于微信仅提供了简单的接口使其插件具备后台下载应用的能力,因此,微信平台无法区分上述下载任务,而只会返回最后一个注册的下载任务的下载状态信息,例如,只会返回应用程序C的下载状态,而针对其他两个应用程序的下载任务则无法接收到下载状态信息,从而造成下载混乱。另外,为了区分同一个引用的不同引流模块的下载激活效果,研发人员经常会在不同的引流模块接入不同的渠道包,区分不同渠道包下载激活效果,就要要求下载回调的精准,而现有的同一插件底层页面多任务的下载无法满足这一要求。
为了解决上述问题,本申请提出了一种应用程序下载方法。该方法可应用于由应用程序页面上引流模块导流的应用程序的下载,比如应用于由微信平台或者手机QQ平台加载的HTML5页面上的引流模块导流的应用程序的下载。
需要说明的是,为了描述方便,本申请中将页面上与引流模块对应的用户可以通过点击引流模块下载的应用程序简称为待下载应用程序,而将加载页面的应用程序称为主应用程序,并将通过主应用程序加载的页面称为主应用程序页面。例如,微信平台上腾讯新闻插件加载的HTML5页面可以称为主应用程序页面;其上引流模块对应的应用程序可以称为待下载应用程序;并且,在这种情况下,微信就是主应用程序。
其中,上述主应用程序页面可以为由主应用程序的插件加载的插件底层页面,比如由微信、手机QQ的腾讯新闻插件加载的HTML 5页面。且上述页面上包含一个或多个引流模块。这一个或多个引流模块可以对应同一个待下载应用程序,也可以对应多个不同的待下载应用程序。
在本申请的一些实例中,这种应用程序下载方法增加了下载管理模块,对应用程序的下载做了统一的模块化管理,在简化了下载业务接入的同时,使得在多应用并发下载以及多方调用下载接口的情况下,不会造成页面出错,在提高下载转化率的同时,保证了代码的高效性,并提高了用户体验。其中,下载转化率为用户点击触发某个应用下载到该应用成功安装的比例。
图1显示了本申请实例所述的应用程序下载方法所应用系统的系统结构。如图1所示,本申请的系统至少包括:移动终端11、网络12以及服务器13。
其中,上述移动终端11可以是手机、Pad、平板电脑以及膝上型便携计算机等便携的终端设备。特别地,在上述移动终端11上安装有主应用程序101以及下载管理模块102。
上述网络12可以是无线网络、有线网络或者无线网络和有线网络的混合网络。
上述服务器13可以是上述主应用程序的服务器,例如,微信应用服务器或者QQ应用服务器等等。
上述下载管理模块102为本申请提出的下载管理方法对应的下载管理模块,用于统一模块化管理上述插件底层页面上的下载业务。
更进一步,如图1所示,上述下载管理模块102可以包括两个与主应用程序101连接的下载管理接口:注册接口1021和监听接口1022。上述下载管理模块102还可以包括一个下载管理单元1023。
其中,上述注册接口1021用于在主应用程序客户端101初始化某个主应用程序页面(插件底层页面)时,受到该主应用程序页面的触发,获取来自主应用程序页面的主应用程序页面包含的一个或多个引流模块对应的一个或多个应用程序的下载信息,并发送包含上述下载信息的注册请求至下载管理单元1023,以在下载管理单元1023内对上述主应用程序页面上包含的一个或多个引流模块对应的应用程序进行注册。具体而言,上述注册是指下载管理单元1023在接收到来自上述注册接口1021的注册请求时记录与上述一个或多个引流模块对应的应用程序的下载信息。上述下载信息可以包括:应用程序安装包的下载地址以及与应用程序对应的回调函数等等。上述下载信息还可以包括:应用程序安装包的消息摘要算法第五版(MD5,Message Digest Algorithm 5)。需要说明的是,上述注册过程是预先准备的工作,主要是为了预先存储能够由主应用程序页面上引流模块触发下载的应用程序的各种下载信息,以便在用户触发某个应用程序的下载时可以快速反应,从而提升用户的体验。在实际的应用中,上述注册过程也可以不在主应用程序页面的初始化时进行,而是在用户点击主应用程序页面上某个引流模块时单独对该引流模块所对应的应用程序进行上述注册。也即,在用户点击主应用程序页面上某个引流模块时,注册接口1021从主应用程序页面上获取该引流模块所对应应用程序的下载信息。
上述监听接口1022用于监听来自上述主应用程序的用户针对页面上引流模块所对应应用程序的下载事件。当监听接口1022监听到针对某个应用程序的下载事件后,将发送下载该应用程序的下载请求至下载管理单元1023。上述下载管理单元1023在接收到来自监听接口1022的下载请求后将调用主应用程序的应用程序下载接口下载该应用程序。此时,主应用程序的应用程序下载接口将建立下载该应用程序的下载任务并生成与该下载任务对应的下载任务标记,然后将生成的下载任务标记通过监听接口1022反馈给下载管理单元1023。下载管理单元1023在收到下载任务标记后将建立下载任务标记和被下载应用程序的对应关系并存储。
上述监听接口1022进一步用于接收由主应用程序回调的针对某个下载任务的下载状态信息,并将接收的下载状态信息反馈给下载管理单元1023。并且,为了标记下载状态信息对应的下载任务,在下载状态信息中还将包含此下载任务对应的下载任务标记。此时,下载管理单元1023根据下载状态信息中的下载任务标记以及自身记录的应用程序与下载任务标记的对应关系,确定来自监听接口1022的下载状态信息对应于哪一个应用程序,并将上述下载状态信息通过监听接口1022返回至主应用程序页面上相应应用程序对应的引流模块,由主应用程序页面根据接收的下载状态信息更新主应用程序页面上的与该应用程序对应的引流模块显示的该应用程序的下载状态。
基于上述系统结构,本申请的实例提供了应用程序的下载方法。图2显示了本申请实例所述的应用程序下载方法的流程,如图2所示,该方法包括了以下步骤:
步骤201:在主应用程序页面的初始化过程中,获取主应用程序页面上至少一个引流模块所对应至少一个应用程序的下载信息。
在本申请的一些实例中,上述主应用程序页面可以是前述的插件底层页面,例如微信平台上腾讯新闻插件加载的HTML5页面。
目前,如前所述,越来越多的用户通过上述主应用程序的插件底层页面来浏览信息,比如通过微信的腾信新闻插件来浏览新闻。通常,当用户点击主应用程序的某个插件时,响应于用户的点击操作,主应用程序要对相应的插件底层页面进行初始化,以加载相应的页面信息。在一些实例中,为了满足用户在插件底层页面上面的下载需求,在上述插件底层页面上面添加了多个引流模块,以引导用户进行某个或某几个应用程序的下载。通常,一个应用程序可以对应上述插件底层页面上一个或多个引流模块。
更进一步的,在上述插件底层页面的初始化过程中,上述插件底层页面会触发下载管理模块102中的注册接口1021在下载管理单元1023中对上述引流模块对应的应用程序进行注册,也即由注册接口1021获取主应用程序页面上包含的一个或多个引流模块所对应应用程序的下载信息,并在下载管理单元1023中记录上述引流模块对应的应用程序的的下载信息,例如,上述应用程序的下载信息可以包括:应用程序安装包下载地址以及与应用程序对应的回调函数等等。上述应用程序的下载信息还可以包括:应用程序安装包的MD5标识。
更进一步,在上述注册的过程中,下载管理模块102还可以通过主应用程序捕捉被注册应用程序在当前移动终端11内的下载状态以及安装状态,并根据上述应用程序的下载状态以及安装状态在上述主应用程序页面上更新对应引流模块的显示样式。以微信的腾讯新闻插件的HTML5页面为例,假设该HTML5页面上包含腾讯新闻的引流模块,且用户之前已经在移动终端上下载了腾讯新闻的安装包,但是并没有完成安装。这样,当用户打开微信的腾讯新闻插件的HTML5页面,下载管理模块102在对腾讯新闻进行注册时,会捕捉到在当前的移动终端中已经存在腾讯新闻的安装包。此时,下载管理模块102将会将腾讯新闻已下载的下载状态反馈给该腾讯新闻插件的HTML5页面,以将腾讯新闻对应引流模块的显示样式更新为提示用户安装已下载的腾讯新闻。又例如,在上述情景下,如果用户已经在当前的移动终端11上安装了腾讯新闻应用。当用户打开微信的腾讯新闻插件的HTML5页面,下载管理模块102在对腾讯新闻进行注册时,会捕捉到在当前的移动终端中已经安装了腾讯新闻应用。此时,下载管理模块102将会将腾讯新闻已安装的安装状态反馈给该腾讯新闻插件的HTML5页面,以将腾讯新闻对应引流模块的显示样式更新为提示用户打开腾讯新闻查看相关新闻。
其中,上述应用程序安装包的下载地址可以是待下载应用安装包的链接。此外,在下载管理模块102调用主应用程序的应用程序下载接口进行应用程序下载时,会调用与应用程序对应的回调函数,以使上述主应用程序反馈该应用程序的下载状态信息给下载管理模块102。上述MD5标识可以区分每一个安装包,因为每个安装包的MD5都不同,可以用来进行安全校验。通常情况下,下载管理模块102可以在调用主应用程序的应用程序下载接口进行应用程序下载时可以将所述应用程序安装包的MD5发给主应用程序,由主应用程序在安装包下载完成后将下载的安装包的MD5以及从下载管理模块102接收的MD5进行比较,如果二者一致,则说明下载成功,并反馈下载成功的下载状态信息给下载管理模块102;如果二者不一致,则说明下载失败,并反馈下载失败的下载状态信息给下载管理模块102。由下载管理模块102将上述下载成功或者失败的下载状态信息反馈给主应用程序页面上与上述被下载应用程序对应的引流模块。
下面将结合附图通过具体的示例详细说明在主应用程序页面的初始化过程中下载管理模块102如何完成待下载应用程序的注册。图3显示了微信平台腾讯新闻插件的HTML5页面示例。如图3所示,当用户点击微信中腾讯新闻插件时,响应于用户的点击操作,微信将初始化腾讯新闻的插件底层页面,也即如图3所示的HTML5页面,以加载该页面上的新闻信息301和引流模块302等页面信息。其中,新闻信息301包括新闻图片和新闻正文;引流模块302包括引导用户下载某个待下载应用的提示语。当用户点击页面上的引流模块302时,将触发下载该引流模块302对应的待下载应用,例如腾讯新闻应用。在上述图3所示的插件底层页面的初始化过程中,插件底层页面上的引流模块302将触发下载管理模块102对引流模块302对应的腾讯新闻应用进行注册,也即触发注册接口1021发送注册请求给下载管理单元1023。该注册请求消息中包括腾讯新闻的下载信息,例如可以包括:腾讯新闻应用安装包的MD5标识、应用程序安装包下载地址以及与其对应的回调函数等等。收到上述注册请求后,下载管理单元1023将记录腾讯新闻应用的下载信息,从而完成腾讯新闻应用的注册。
上述步骤201完成了对主应用程序页面上所包含引流模块所对应的所有应用程序的注册。如前所述,上述注册过程也不一定要在主应用程序页面的初始化时进行;而也可以在用户点击主应用程序页面上某个引流模块时,单独完成对该引流模块所对应应用程序的注册。
步骤202:监听用户针对上述至少一个应用程序的下载事件。
在本步骤中,下载管理模块102可以增加对上述各个应用程序下载事件的监听。如果监听接口1022监听到用户针对某个应用程序的下载事件,则将启动后续操作,下载所述应用程序。
通常情况下,上述下载事件可以是用户点击主应用程序页面上某个应用程序对应的引流模块的事件。例如,当用户用手指点击主应用程序页面上某个应用程序对应的引流模块时,操作系统将检测到该点击操作,并通知主应用程序用户点击了某个引流模块。在这种情况下,主应用程序将会调用下载管理模块102的监听接口1022,从而触发针对该引流模块所对应应用程序的下载事件。
在一些实例中,下载管理模块102通过增加监听事件,对待应用程序相关的事件进行监听。当监听到与应用程序相关的预设动作发生时,例如监听到用户点击应用程序对应的引流模块时,进行后续处理。
仍以图3所示的微信平台上腾讯新闻插件的HTML5页面为例,在完成了针对腾讯新闻应用的注册后,下载管理模块102还将增加针对腾讯新闻应用的下载事件的监听,当监听到预设动作(例如,点击页面上的腾讯新闻应用对应的引流模块)时,进行后续的下载处理。
步骤203:当监听到用户针对其中一个应用程序的下载事件时,调用主应用程序的应用程序下载接口下载所述应用程序。
在本步骤中,当下载管理模块102的监听接口1022监听到用户针对某个应用程序的下载事件被触发时,上述监听接口1022发送下载请求至下载管理单元1023,由下载管理单元1023调用上述主应用程序的应用程序下载接口下载该应用程序,同时,为了完成应用程序的下载,将记录所述应用程序下载信息中的该应用程序的下载地址发送给上述主应用程序,以使其进行下载。
步骤204:接收主应用程序反馈的在下载所述应用程序时生成的下载任务标记。
在本申请的一些实例中,上述主应用程序响应于上述下载管理模块102的下载请求,将建立下载任务,同时生成与上述下载任务对应的下载任务标记,并将该下载任务标记返回给上述下载管理模块102。其中,上述下载任务标记用于标记上述下载任务。该下载任务标记与下载任务以及与下载任务所对应的应用程序都是一一对应的。
步骤205:建立下载任务标记与所述应用程序的对应关系。
下载管理模块102在接收到上述下载任务标记以后,将建立下载任务标记与正在下载的应用程序的对应关系。
更进一步的,下载管理模块102在调用主应用程序的应用程序下载接口的同时,会同时根据自身记录的待下载应用的下载信息中的回调函数,调用应用程序的回调函数,以使上述主应用程序反馈该应用程序的下载状态信息给下载管理模块102。
步骤206:接收主应用程序反馈的下载状态信息。
在一些实例中,上述主应用程序在下载某个应用程序的过程中,下载管理模块102会调用应用程序下载信息中该应用程序的回调函数,此时,基于下载管理模块102的回调请求,会反馈应用程序的下载状态信息,比如当前的下载进度(例如,已下载安装包部分占整个安装包的比例)、下载完成、下载失败等等下载状态信息给上述下载管理模块102。同时,为了标记该下载状态信息对应哪一个应用程序的下载任务,上述状态信息中还包含下载任务标记。上述下载任务标记可以是下载状态信息的一部分。当然,上述下载任务标记也可以和下载状态信息是并列的信息,一起由主应用程序反馈给下载管理模块102。
步骤207:根据所接收下载状态信息中的下载任务标记确定所接收的下载状态信息所对应的应用程序。
如前所述,下载任务标记与下载任务以及应用程序是一一对应的,因此,根据下载状态信息中的下载任务标记以及建立的下载任务标记与应用程序的对应关系,可以确定该下载状态信息所对应的应用程序是哪一个。
步骤208:将所述下载状态信息反馈给所述主应用程序页面上与所述应用程序对应的引流模块,以更新所述引流模块显示的所述应用程序的下载状态。
在本申请的一些实例中,上述主程序页面接收到对应某个应用程序的下载状态信息后,将在主应用程序页面上更新该应用程序对应的引流模块的显示形态,以显示应用程序当前的下载状态,例如通过进度条的方式显示该应用程序当前的下载进度。
在一些实例中,当主应用程序完成上述应用程序安装包的下载时,主应用程序可以进一步根据从下载管理模块102接收的该应用程序安装包的MD5进行安全校验,例如,可以将下载的应用程序的安装包的MD5与从下载管理模块102接收的该应用程序的MD5进行比较,如果二者不一致,则认为下载失败,原因可能是发生了网络劫持;如果二者一致,则认为下载成功,此后主应用程序可将上述下载成功或者下载失败的信息作为下载状态信息反馈给下载管理模块102。
更进一步,在上述主应用程序下载所述待下载应用程序的过程中,上述下载管理模块102还可以进一步通过监听接口1022监听暂停下载的事件。
通常情况下,上述暂停下载事件可以是用户在应用程序的下载过程中点击该应用程序对应的引流模块的事件。当用户用手指点击插件底层页面上正在下载的某个待下载应用对应的引流模块时,操作系统将检测到该点击操作,并通知主应用程序用户点击了某个引流模块。在这种情况下,主应用程序将会调用下载管理模块102的监听接口1022,从而触发针对该引流模块所对应应用程序的暂停下载事件。
当下载管理模块102监听到暂停下载的事件后,将进一步调用主应用程序的应用程序下载接口暂停相关应用程序的下载。
下面结合附图举例描述应用软件下载过程。图4显示了插件底层页面在应用软件的下载过程中显示下载状态的示例。图4仍以微信平台上的腾讯新闻插件的HTML5页面为例进行展示。在图4中,当用户点击界面a中与“腾讯新闻”相关的引流模块401时,下载管理模块102将调用微信的应用程序下载接口下载腾讯新闻应用。同时,下载管理模块102将微信应用下载接口回调的腾讯新闻应用的下载状态反馈给引流模块401,由引流模块401在其下方显示下载进程条,如界面b中的进度条402所示。当腾讯新闻的安装包下载完成后,下载进度条将达到满格,如界面c中的进度条403所示。并进一步从上述界面切换至应用程序安装界面,提示用户安装腾讯新闻。在上述下载过程中,如果用户再次点击引流模块401,则下载管理模块102再次将调用微信的应用程序下载接口暂停下载腾讯新闻应用。
需要说明的是,在本申请的一些实例中,当主程序页面上多个引流模块对应同一个应用程序时,如果用户点击其中一个引流模块触发该应用程序的下载,则在下载过程中,当下载管理模块102将该应用程序的下载状态信息反馈给主应用程序页面时,主应用程序页面将会同时更新该应用程序对应的所有引流模块的显示形态。例如,都可以通过进度条的方式显示该应用程序的下载进度。
由此可以看出,通过上述方法可以对主程序页面上由引流模块导流的下载任务进行管理,并且通过下载任务标记来标记不同应用程序的下载任务,从而可以有效避免现有下载过程中出现的下载混乱的问题。而且,由于为每个下载任务都建立了下载任务标记,而且下载任务标记和被下载的应用程序是一一对应的,因此,可以很方便的统计出应用程序的下载量,即使是通过不同下载渠道下载的。
基于以上各实例,本申请还提供了一种应用程序下载装置,其中上述应用程序下载装置可以安装在上述移动终端11的主应用程序上。
在本申请的一些实例中,上述应用程序下载装置可由图5所示的结构图实现,包括:注册接口501、监听接口502以及下载管理单元503。
在一些实例中,各模块功能如下:
注册接口501,用于在主应用程序页面的初始化过程中,获取与所述主应用程序页面上至少一个引流模块所对应的至少一个应用程序的下载信息;
监听接口502,用于监听针对所述至少一个应用程序的下载事件,接收主应用程序反馈的应用程序的下载任务标记以及下载状态信息,并反馈下载状态信息给上述主应用程序页面上与下载状态信息对应的应用程序的至少一个引流模块;
下载管理单元503,用于记录所述至少一个应用程序的下载信息;当监听接口502监听到针对一个应用程序的下载事件时,调用主应用程序的应用程序下载接口下载所述应用程序;在监听接口502接收到主应用程序反馈的应用程序的下载任务标记时,建立下载任务标记和被下载应用程序的对应关系;在监听接口502接收到主应用程序反馈的应用程序的下载状态信息时,根据所接收下载状态信息包含的下载任务标记,确定所述下载状态信息对应的应用程序。
在一些实例中,上述注册接口501可以包括获取单元,用于在主应用程序页面的初始化过程中获取上述主应用程序页面上的一个或多个待下载应用程序的下载信息。其中,上述待下载应用程序的下载信息可以包括:上述待下载应用程序安装包的MD5标识、下载地址以及与其对应的回调函数等等。
上述注册接口501还可以进一步包括:捕捉单元,用于在获取所述至少一个应用程序的下载信息时,分别查询所述至少一个应用程序在当前移动终端中的下载及安装状态;以及将所述至少一个应用程序在当前移动终端中的下载及安装状态反馈给所述主应用程序页面上相应的引流模块,以使所述引流模块更新自身所显示的所述至少一个应用程序的下载状态。
如前所述,在一些实例中,上述注册接口501也可以在用户点击主应用程序页面上某个引流模块时对该引流模块对应的应用程序进行注册,即获取该应用程序的下载信息。
在一些实例中,上述监听接口502通过注册监听事件,对待应用程序相关的事件进行监听。当监听到与应用程序相关的预设动作发生时,例如监听到用户点击应用程序对应的引流模块时,进行后续处理。
在一些实例中,上述下载管理单元503包括:
调用子单元,用于在监听接口监听到针对其中一个应用程序的下载事件时,调用主应用程序的应用程序下载接口下载所述应用程序;
接收子单元,用于建立所述下载任务标记与所述应用程序的对应关系;及
确定子单元,用于根据所述下载状态信息包含的下载任务标记确定所述下载状态信息对应的应用程序。
在本申请的一些实施例中,上述的验证码数据处理装置可运行在任一用于应用程序下载处理的计算设备中,并加载在该计算设备的存储器中。如图6所示,该计算设备除了包括上述控制装置中的各个模块,还可包括:存储器601、处理器603、总线602、端口604。处理器603和存储器601通过总线602互联。处理器603可通过端口604接收和发送数据以实现网络通信和/或本地通信。上述各模块501~503可以是存储器601中存储的机器可执行指令模块。处理器603通过执行存储器601中各模块501~503中包含的机器可执行指令,进而能够实现上述各模块501~503的功能。
上述各个模块实现各种功能的具体方法及原理在前文均有描述,这里不再赘述。
另外,在本申请各个实例中的装置及各模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上装置或模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (13)
1.一种应用程序下载方法,其特征在于,所述方法包括:
监听针对主应用程序页面上至少一个引流模块对应的至少一个应用程序的下载事件;
当监听到针对其中一个应用程序的下载事件时,调用主应用程序的应用程序下载接口下载所述应用程序;
接收主应用程序反馈的下载所述应用程序时生成的下载任务标记;
建立所述下载任务标记与所述应用程序的对应关系;
接收主应用程序反馈的包含下载任务标记的下载状态信息;
根据所述下载状态信息包含的下载任务标记确定所述下载状态信息对应的应用程序;以及
将所述下载状态信息反馈给所述主应用程序页面上与确定的应用程序对应的引流模块,以使其更新所述引流模块所显示的所述应用程序的下载状态。
2.根据权利要求1所述的方法,其中,所述方法进一步包括:在所述主应用程序页面的初始化过程中,获取所述至少一个应用程序的下载信息。
3.根据权利要求2所述的方法,其中,所述获取所述至少一个应用程序的下载信息包括:调用注册接口从所述主应用程序页面获取所述至少一个应用程序的下载信息。
4.根据权利要求2所述的方法,其中,所述方法进一步包括:
在获取所述至少一个应用程序的下载信息时,分别查询所述至少一个应用程序在当前移动终端中的下载及安装状态;以及
将所述至少一个应用程序在当前移动终端中的下载及安装状态反馈给所述主应用程序页面上相应的引流模块,以使所述引流模块更新自身所显示的所述至少一个应用程序的下载状态。
5.根据权利要求2所述的方法,其中,所述应用程序的下载信息包括:应用程序安装包的下载地址以及与所述应用程序对应的回调函数;
所述调用主应用程序的应用程序下载接口下载所述应用程序包括:
根据获取的所述应用程序的下载信息,发送所述应用程序安装包的下载地址信息至所述主应用程序,调用其应用程序下载接口根据所述应用程序安装包的下载地址下载所述应用程序的安装包;以及
根据获取的所述应用程序的下载信息,调用所述应用程序对应的回调函数,以使所述主应用程序反馈所述应用程序对应的下载状态信息。
6.根据权利要求1所述的方法,其中,所述监听针对所述至少一个应用程序的下载事件包括:注册待监听的应用程序下载事件;其中,所述应用程序下载事件为用户点击所述主应用程序页面上与所述应用程序对应的引流模块的事件。
7.根据权利要求1所述的方法,其中,所述根据所述下载状态信息包含的下载任务标记确定所述下载状态信息对应的应用程序包括:根据所述下载状态信息包含的下载任务标记以及自身生成的下载任务标记与应用程序的对应关系确定所述下载状态信息对应的应用程序。
8.根据权利要求2所述的方法,其中,所述应用程序的下载信息包括:应用程序安装包的消息摘要算法第五版标识MD5;
所述方法进一步包括:在调用主应用程序的应用程序下载接口下载所述应用程序时将所述应用程序安装包的MD5发送至所述主应用程序,由所述主应用程序对自身下载的所述应用程序的安装包进行核验。
9.一种应用程序下载装置,其特征在于,所述装置包括:监听接口以及下载管理单元;其中,
所述监听接口用于监听针对主应用程序页面上至少一个引流模块对应的至少一个应用程序的下载事件;
所述下载管理单元用于在监听接口监听到针对其中一个应用程序的下载事件时,调用主应用程序的应用程序下载接口下载所述应用程序;
所述监听接口进一步用于接收主应用程序反馈的下载所述应用程序时生成的下载任务标记,并接收主应用程序反馈的包含下载任务标记的下载状态信息;
所述下载管理单元进一步建立所述下载任务标记与所述应用程序的对应关系以及根据所述下载状态信息包含的下载任务标记确定所述下载状态信息对应的应用程序;以及
所述监听接口 进一步将所述下载状态信息反馈给所述主应用程序页面上与确定的应用程序对应的引流模块,以使其更新所述引流模块显示的所述应用程序的下载状态。
10.根据权利要求9所述的装置,其中,所述装置进一步包括:
注册接口,用于在主应用程序页面的初始化过程中,获取与所述主应用程序页面上至少一个引流模块对应的至少一个应用程序的下载信息。
11.根据权利要求10所述的装置,其中,所述注册接口包括:
获取单元,用于在主应用程序页面的初始化过程中从所述主应用程序页面上获取所述至少一个应用程序的下载信息。
12.根据权利要求11所述的装置,其中,所述注册接口进一步包括:
捕捉单元,用于在获取所述至少一个应用程序的下载信息时,分别查询所述至少一个应用程序在当前移动终端中的下载及安装状态;以及将所述至少一个应用程序在当前移动终端中的下载及安装状态反馈给所述主应用程序页面上相应的引流模块,以使所述引流模块更新自身所显示的所述至少一个应用程序的下载状态。
13.根据权利要求10所述的装置,其中,所述下载管理单元包括:
调用子单元,用于在监听接口监听到针对其中一个应用程序的下载事件时,根据所述应用程序的下载信息调用主应用程序的应用程序下载接口下载所述应用程序;
接收子单元,用于建立所述下载任务标记与所述应用程序的对应关系;及确定子单元,用于根据所述下载状态信息包含的下载任务标记确定所述下载状态信息对应的应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710053098.0A CN108347456B (zh) | 2017-01-22 | 2017-01-22 | 一种应用程序下载方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710053098.0A CN108347456B (zh) | 2017-01-22 | 2017-01-22 | 一种应用程序下载方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108347456A CN108347456A (zh) | 2018-07-31 |
CN108347456B true CN108347456B (zh) | 2021-09-10 |
Family
ID=62961858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710053098.0A Active CN108347456B (zh) | 2017-01-22 | 2017-01-22 | 一种应用程序下载方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108347456B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144609B (zh) * | 2018-08-31 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 应用下载方法、装置、存储介质及终端 |
CN113419665B (zh) * | 2021-08-25 | 2021-11-16 | 腾讯科技(深圳)有限公司 | 一种应用显示方法、相关装置及设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6948169B1 (en) * | 2000-11-16 | 2005-09-20 | Dell Products L.P. | Web-based factory manufacturing of computers in a build-to-order manufacturing environment |
CN102349065A (zh) * | 2009-01-28 | 2012-02-08 | 海德沃特合作I有限公司 | 设备辅助的服务安装 |
CN102984205A (zh) * | 2012-11-01 | 2013-03-20 | 北京奇虎科技有限公司 | 辅助浏览器进行软件下载的安全管理器 |
CN103279375A (zh) * | 2013-06-19 | 2013-09-04 | 百度在线网络技术(北京)有限公司 | 在浏览器中运行应用程序的方法和装置 |
CN103678505A (zh) * | 2013-11-20 | 2014-03-26 | 北京奇虎科技有限公司 | 一种在浏览器中运行应用程序的方法、装置和浏览器 |
CN104346196A (zh) * | 2014-06-17 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 软件下载安装方法及装置 |
CN104503809A (zh) * | 2015-01-08 | 2015-04-08 | 大唐微电子技术有限公司 | 一种实现应用下载更新的方法及装置 |
CN104866288A (zh) * | 2014-02-20 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 一种访问应用程序的方法、装置及终端 |
CN105005735A (zh) * | 2015-08-25 | 2015-10-28 | 广东欧珀移动通信有限公司 | 下载管理方法和下载管理装置 |
CN106095456A (zh) * | 2016-06-17 | 2016-11-09 | 北京奇虎科技有限公司 | 引导用户下载应用程序的方法、装置及移动终端 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3578266B2 (ja) * | 2000-01-06 | 2004-10-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アプリケーションの起動方法、アプリケーションの起動のためのソフトウエア・プロダクト |
US8621457B2 (en) * | 2009-11-12 | 2013-12-31 | Nintendo Co., Ltd. | System and method for installing software applications |
GB201107275D0 (en) * | 2011-04-28 | 2011-06-15 | Communigate Ltd | Method of tracking software application internet downloads |
-
2017
- 2017-01-22 CN CN201710053098.0A patent/CN108347456B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6948169B1 (en) * | 2000-11-16 | 2005-09-20 | Dell Products L.P. | Web-based factory manufacturing of computers in a build-to-order manufacturing environment |
CN102349065A (zh) * | 2009-01-28 | 2012-02-08 | 海德沃特合作I有限公司 | 设备辅助的服务安装 |
CN102984205A (zh) * | 2012-11-01 | 2013-03-20 | 北京奇虎科技有限公司 | 辅助浏览器进行软件下载的安全管理器 |
CN103279375A (zh) * | 2013-06-19 | 2013-09-04 | 百度在线网络技术(北京)有限公司 | 在浏览器中运行应用程序的方法和装置 |
CN103678505A (zh) * | 2013-11-20 | 2014-03-26 | 北京奇虎科技有限公司 | 一种在浏览器中运行应用程序的方法、装置和浏览器 |
CN104866288A (zh) * | 2014-02-20 | 2015-08-26 | 腾讯科技(深圳)有限公司 | 一种访问应用程序的方法、装置及终端 |
CN104346196A (zh) * | 2014-06-17 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 软件下载安装方法及装置 |
CN104503809A (zh) * | 2015-01-08 | 2015-04-08 | 大唐微电子技术有限公司 | 一种实现应用下载更新的方法及装置 |
CN105005735A (zh) * | 2015-08-25 | 2015-10-28 | 广东欧珀移动通信有限公司 | 下载管理方法和下载管理装置 |
CN106095456A (zh) * | 2016-06-17 | 2016-11-09 | 北京奇虎科技有限公司 | 引导用户下载应用程序的方法、装置及移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN108347456A (zh) | 2018-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107092552B (zh) | 一种日志管理方法及装置 | |
WO2017071207A1 (zh) | 一种应用安装方法、相关装置及应用安装系统 | |
CN108256118B (zh) | 数据处理方法、装置、系统、计算设备以及存储介质 | |
US10397281B2 (en) | Method, system and server for self-healing of electronic apparatus | |
CN109194606B (zh) | 攻击检测系统、方法、计算机设备及存储介质 | |
CN110442502B (zh) | 一种埋点的方法、装置、设备及存储介质 | |
US20150319221A1 (en) | Tracing business transactions based on application frameworks | |
US20170033980A1 (en) | Agent manager for distributed transaction monitoring system | |
CN108121650B (zh) | 一种对于页面用户界面的测试方法及装置 | |
CN108347456B (zh) | 一种应用程序下载方法及装置 | |
CN110928706B (zh) | 小程序交互方法、装置、电子设备及存储介质 | |
FI120286B (fi) | Menetelmä ja laitejärjestely palvelin-asiakaslaite-ympäristön hallitsemiseksi | |
CN113645308B (zh) | 移动终端tcp通信、装置、设备及存储介质 | |
CN108039956A (zh) | 应用监控方法、系统和计算机可读存储介质 | |
CN110750365A (zh) | 一种远程过程调用方法、系统、终端及存储介质 | |
US20170034030A1 (en) | Monitoring single content page application transitions | |
CN108241616B (zh) | 消息推送方法和装置 | |
CN111367963B (zh) | 一种确定来源渠道的方法、装置、设备和计算机存储介质 | |
CN111475322A (zh) | 定位stuck线程的方法、装置、计算机设备及可读存储介质 | |
CN113535544A (zh) | 一种待调试子应用运行方法、计算机设备以及装置 | |
CN110365627B (zh) | 应用程序同步方法、装置、计算设备以及存储介质 | |
CN113282363A (zh) | 一种优化混合app的方法及装置 | |
CN106162609B (zh) | 一种推送数据的方法及装置 | |
CN110096281A (zh) | 代码解析方法、解析服务器、存储介质及装置 | |
CN107623704B (zh) | 终端设备中的数据交互方法、客户端及浏览器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |