Import "shanhai.lua"
Import "Cjson.lua"
dim 版本=获取参数("版本")
Dim 安装包路径=GetSdcardDir()&"/update.apk"
Dim 版本号=1.0
检测更新()
Do
ShowMessage "Version 1.0"
Loop
Function 检测更新()
If 版本(0) = 版本号 Then //对比云端版本号是否一致
ShowMessage "已是最新版本,无需更新"
delay 1000
Else
UI.NewLayout ("检测到新版本")//更新公告
UI.AddTextView "检测到新版本", "更新提示", "需更新请点击确定,无需更新点继续进入脚本界面"
UI.NewRow "检测到新版本", "1"
UI.AddTextView "检测到新版本", "更新内容", "1.新增XXX功能"
UI.NewRow "检测到新版本", "2"
UI.AddTextView "检测到新版本", "更新内容", "2.修复XXXBUG"
UI.NewRow "检测到新版本", "3"
UI.AddButton("检测到新版本","更新","确认更新")
UI.SetOnClick "更新", 在线更新 //按钮点击事件
UI.Show("检测到新版本")
End If
End Function
Function 在线更新()
UI.SetEnabled "更新", false //按钮点击后禁止再次点击,防止反复调用此函数
If Dir.Exist(安装包路径) <> 0 Then //判断该路径下是否存在此安装包
ShowMessage "检测到旧安装包,删除后下载"
delay 1000
Dir.Delete(安装包路径)//删除旧的安装包
End If
ShanHai.GetHttpFile(版本(1),安装包路径)//删除后重新下载新的安装包
Dim t=time()//时间标记
While true
If File.Bytes(安装包路径) = 版本(2) Then //文件大小与云端一致后,确认下载完成
ShowMessage "下载完毕,准备安装"
Delay 1000
Exit While
Else
ShowMessage "下载中,请稍后"
End If
Delay 500
If Time() - t >= 60 Then //超时后退出程序
ShowMessage "下载超时,请检查网络!"
Exit Function
End If
Wend
Shanhai.Install(安装包路径)//安装更新包
ShowMessage "安装完毕,请重新打开脚本"
UI.close("检测到新版本")//关闭UI界面
Delay 1000
End Function
Function 获取参数(参数)
dim 返回值 = Url.Get("https://starcheng.xyz/chengsu.html")
// TracePrint 返回值
Dim 起始位置=UTF8.InStr(1,返回值,参数&"=")
Dim 终点位置=UTF8.InStr(起始位置,返回值,"}")
Dim 长度=UTF8.Len(参数&"=")
TracePrint 起始位置,终点位置
dim 字符串=UTF8.Mid(返回值,起始位置+长度,终点位置-起始位置-长度+1)
TracePrint 字符串
dim table = Cjson.Decode(字符串)
Dim 数组()
For Each k , v In table
数组(k)=v
Next
获取参数=数组
End Function