应用更新类操作实例讲解

作者:创世魂

 

● 帮助说明

通过使用本类可快速实现软件的检测更新下载,不需要自己去处理文件下载和安装。

更多优点可看下图内的帮助说明。

注意:本类想要正常使用,务必编译发布版

注意2:本类位于“应用程序自动更新支持”模块中,欲使用本类务必添加其模块。

 

● 准备操作

 

一、准备域名和虚拟主机

1、购买租用虚拟主机或云服务器。

2、购买域名后,绑定虚拟主机或者服务器。

3、测试网站是否能正常访问。

提示:域名和虚拟主机购买可去腾讯云,阿里云,主机屋等较为知名的服务器提供商咨询购买。

如果不会绑定域名等操作,咨询对应网站的客服人员。

二、准备如下文本文件

文本文件起名“gengxin.txt”,并在文件中输入如下图所示的7段文本,每段文本用“#”分割。

软件MD5:就是最新编译发布版APK文件的MD5,文件MD5具体获取方法有很多,自行百度搜索。

下载地址:就是最新版APK文件的下载地址,必须是发布版程序

版本号和版本名称:可参考“新手图文教程”中的介绍。

填写好数据后,将本文件另存为“UTF-8”编码,并上传至网站服务器中(如何上传到服务器,可咨询服务器提供商客服)。

如果不保存为“UTF-8”编码,检测更新可能会出现乱码的情况。

 

● 初始化
● 检查更新
● 检测到有更新(事件)
● 应用更新数据解析基础类
● 数据解析(虚拟)
● 应用更新数据类

 

“初始化”帮助文档:

顾名思义,通过本方法可初始化一些数据,进行检测更新前的准备。

参数1:填写你自己的网络数据地址,也就是“gengxin.txt”所在的网站地址。

参数2:需要定义一个“基础类”“应用更新数据解析基础类”的对象,类名随意,然后创建此对象放在本参数中。

参数3、4:用于监听更新和下载请求,默认为真。

 

“检查更新”帮助文档:

顾名思义,调用本方法可请求更新检测,如果发现新版会进行下载。

注意:调用本方法时,务必保证已经调用过“初始化()”方法。

 

“检测到有更新(事件)”帮助文档:

当软件有更新时,会触发本事件。

 

“应用更新数据解析基础类”帮助文档:

本类主要用于解析更新请求所返回的数据。

具体实现过程通过“数据解析”虚拟方法操作。

 

“数据解析(虚拟)”帮助文档:

此虚拟方法是继承自“应用更新数据解析基础类”,主要作用就是用于解析更新请求返回的数据。

本方法只有一个参数“返回数据”,本数据返回的是“初始化()”方法“参数1”填写的网站地址源码。

 

“应用更新数据类”帮助文档:

本类的主要作用,用于存储要更新的数据信息,如果检测到更新最终会将数据显示出来。

设置的下载地址,则会在后台进行网络访问,将最新版的程序下载到手机上。

 

代码编写如下图:

1、定义类型为“应用更新类”的成员变量,起名“检测更新”

2、添加“通知_被创建”虚拟方法,调用“初始化()”,进行数据初始化操作。

3、“按钮1”被点击后,调用“检查更新()”方法检查更新。

4、添加应用更新类的“检测到有更新”事件,检测到更新后弹出提示。

5、定义“基础类”“应用更新数据解析基础类”的对象,类名务必和“初始化()”方法中的保持一致。

6、在此类中右键可添加“数据解析”虚拟方法。

7、调用“正则文本分割()”方法,分割“返回数据”赋值给定义的“网络数据数组”变量。

8、定义类型为“应用更新数据类”的变量,起名“设置更新数据”

9、读取“网络数据数组”中的各个成员数据,并赋值给对应的“设置更新数据”属性。

10、最后设置完毕将“设置更新数据”进行返回。

 

运行结果如下图(GIF):

“按钮1”被点击后,如果检测到更新就会进行后台下载,并弹出更新提示和最新版本号等信息。

还可以进行安装操作。

注意:必须编译发布版才能正常检测更新。

 

● 检测更新已开始(事件)

 

帮助文档如下图:

顾名思义,本事件的作用就是当检测更新开始时会被触发。

 

代码编写如下图:

在原代码的基础上,添加本事件即可。

注意:本事件被触发,并不能表示能够正常检测更新。

 

运行结果如下图(GIF):

“按钮1”被点击后,编辑框1会添加内容,证明“检测更新已开始”事件被触发。

 

● 下载任务已开始(事件)
● 下载任务已完成(事件)

 

“下载任务已开始(事件)”帮助文档:

顾名思义,当下载任务已经开始时会触发本事件。

 

“下载任务已完成(事件)”帮助文档:

顾名思义,当下载任务完成后,会触发本事件。

参数文件名类,将返回下载后的安装包路径。

 

代码编写如下图:

在原代码的基础上,增加以上两个事件,并添加内容到编辑框中提示。

 

运行结果如下图(GIF)

最终提示文本都显示在编辑框中,证明以上两个事件均被触发。

 

● 下载失败(事件)

 

帮助文档如下图:

顾名思义,当应用安装包下载失败的时候会触发本事件。

例如:下载地址不存在,或者网络原因导致下载失败,都会触发本事件。

 

代码编写如下图:

1、添加“下载失败”事件,并弹出一个下载失败的提示框。

2、在“gengxin.txt”中指定一个不存在的下载地址。

 

运行结果如下图(GIF):

如果下载地址不存在,最终本事件会被触发并弹出“下载失败”的提示。

 

● 检测到无更新(事件)

 

帮助文档如下图:

顾名思义,当程序没有检测到更新的时候,会触发本事件。

 

代码编写如下图:

1、添加本事件,并弹出提示框提示。

2、在“gengxin.txt”中填写和要检测程序一样的版本号。

 

运行结果如下图(GIF):

最终结果,点击“按钮1”就会提示“没有检测到更新”

 

● 检测更新失败(事件)

 

帮助文档如下图:

顾名思义,当检测更新失败的时候就会触发本事件。

例如:当检测更新的地址不存在,或者手机网络不好的情况都会触发本事件。

 

代码编写如下图:

1、添加本事件并弹出一个提示框。

2、在“初始化()”方法的参数中故意指定一个错误的更新地址。

 

运行结果如下图(GIF):

最终结果会提示“检测更新失败”

 

● 用户取消更新(事件)

 

帮助文档如下图:

当用户主动取消更新时会触发本事件。

 

代码编写如下图:

添加“用户取消更新”事件,并弹出“更新被取消”提示。

 

运行结果如下图(GIF):

最终,当程序检测到更新时,点击“取消”按钮,“用户取消更新”事件被触发。

 

● 用户忽略更新(事件)

 

帮助文档如下图:

当用户主动忽略更新时会触发本事件,并且会返回一个参数“应用数据更新类”

通过本参数可获取最新版软件的版本号等数据。

 

代码编写如下图:

添加“用户忽略更新”事件,并取出最新版的一些数据,显示在编辑框中。

调用方式:更新数据.XXX。

 

运行结果如下图(GIF):

最终当用户忽略更新后,最新版的一些数据会显示在编辑框中。

 

● 启动后台更新任务
● 停止后台更新任务

 

“启动后台更新任务”帮助文档:

顾名思义,启动后会持续查询更新接口,用来达到实时检测更新的效果。

检测时间间隔由参数1决定,单位秒。

 

“停止后台更新任务”帮助文档:

调用本方法后,后台检测更新将会停止。

 

代码编写如下图:

1、“按钮1”被点击后,调用“检测更新()”“启动后台更新任务()”方法。

2、“按钮2”被点击后,调用“停止后台更新任务()”停止定时检测更新。

3、添加“检测到无更新”事件,并向编辑框中添加内容,用于验证是否正在持续检测更新。

 

运行结果如下图(GIF):

最终结果证明“启动后台更新任务”方法确实可以实现定时检测更新。

 

● 置更新策略
● 应用更新策略基础类
● 显示更新通知(虚拟)

 

“置更新策略”帮助文档:

顾名思义,通过本方法课对更新策略进行设置。

注意:本方法务必在检测更新前调用。

 

“应用更新策略基础类”帮助文档:

本类是一个基础类,并不能直接使用。需要定义一个新的类,并将本类的名字填入“基础类”表格中。

定义完毕后,右键添加下图所示的三个虚拟方法,可进行对哪种更新策略进行设置。

此处首先讲解“显示更新通知”虚拟方法。

 

“显示更新通知(虚拟)”帮助文档:

本虚拟方法,用来设置是否显示更新通知。

如果方法返回真,则显示更新通知。

如果返回假,则不通知直接开始下载安装。

 

代码编写(1):

1、定义一个新的类,基础类填写“应用更新策略基础类”,类名随意。

2、右键类名选择“添加更新策略的虚拟方法”,找到“显示更新通知”添加此方法,并返回真。

3、“按钮1”被点击后,首先调用“置更新策略()”方法,设置策略。随后在“检测更新()”.

 

运行结果如下图(GIF):

最终结果,检测到更新后会弹出更新提示信息框。

 

代码编写(2):

如果将“显示更新通知”虚拟方法的返回值改成假,结果也会发生变化。

 

运行结果如下图(GIF):

最终结果,检测到更新后,会直接进入新版程序安装过程,并不会弹出安装提示。

 

● 下载完成自动安装(虚拟)

 

帮助文档如下图:

通过本添加本虚拟方法,设置返回值可约束是否立刻进入安装界面。

返回真则进入安装界面,返回假则不进入。

 

代码编写如下图:

1、添加“显示更新通知”虚拟方法,将其返回“假”,如果在不设置“下载完成自动安装”此方法的情况下,必然会直接进入安装界面。

2、添加“下载完成自动安装”虚拟方法,设置返回“假”,这样就约束了最终状态,从而决定是否进入安装界面。

 

运行结果如下图(GIF):

最终结果没有进入安装界面,而是弹出了一个提示。

 

● 显示下载进度框(虚拟)

 

帮助文档如下图:

顾名思义,通过本虚拟方法可用来约束是否显示下载的进度对话框。

如果不设置本方法,默认是显示状态。

注意:如果安装包很小,进度可能不显示。

 

代码编写如下图:

添加本虚拟方法后,让其返回值返回真。

 

运行结果如下图(GIF):

最终结果就会显示一个进度对话框正在下载新版程序。