Fusion APP-添加检查软件更新功能
Fusion APP-简单网页转app制作教程
效果:
注册以及添加软件
只需要更改appid为你的appid
import "android.content.Intent"
import "android.net.Uri"
import "android.provider.Settings"
import "android.app.ProgressDialog"
import "android.app.AlertDialog"
local appid =12278
--将 10001 改成你在 https://aus.nowtime.cc 获取的 APPID
--获取方法[教程可能有点旧(其实我太懒),就先将就下吧] https://nowtime.cc/lua/331.html
local packinfo = this.getPackageManager().getPackageInfo(this.getPackageName(),((32552732/2/2-8183)/10000-6-231)/9)
local appinfo = this.getPackageManager().getApplicationInfo(this.getPackageName(),0)
local versionName = tostring(packinfo.versionName)-- 版本名(cc.nowtime)
local versionCode = tonumber(packinfo.versionCode)-- 版本号(10010)
local check_update_url = "https://aus.nowtime.cc/api/query/update?appid="..appid.."&version_code="..versionCode
if(activity.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo() == nil) then
AlertDialog.Builder(this)
.setTitle("提示")
.setMessage("你未连接至互联网 或 当前连接的网络不可用,请检查你的网络设置")
.setNeutralButton("确定",nil)
.setNegativeButton("打开 数据连接",{onClick=function()
intent = Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)
this.startActivity(intent)
end})
.setPositiveButton("连接 Wi-Fi",{onClick=function()
intent = Intent(Settings.ACTION_WIFI_SETTINGS)
this.startActivity(intent)
end})
.show();
return false
-- 就此中断,不再继续执行下面代码
end
--圆形旋转样式
check_update_dialog = ProgressDialog(this)
check_update_dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER)
check_update_dialog.setTitle("提示")
--设置进度条的形式为圆形转动的进度条
check_update_dialog.setMessage("正在检查更新中,请稍等片刻……\n\n小提示,如果检查更新长时间无反应,按手机「返回键」可以取消检查更新")
check_update_dialog.setCancelable(true)--设置是否可以通过点击Back键取消
check_update_dialog.setCanceledOnTouchOutside(false)--设置在点击Dialog外是否取消Dialog进度条
check_update_dialog.setOnCancelListener{
onCancel=function(l)
print("您取消了「检查更新」操作")
return false
end}
--取消对话框监听事件
check_update_dialog.show()
Http.get(check_update_url,nil,"UTF-8",nil,function(http_code,content,cookie,header)
check_update_dialog.hide()
if (http_code == -1) then
AlertDialog.Builder(this)
.setTitle("提示")
.setMessage("检查更新时出现了些小问题。可能的原因有:\n1.API 服务器可能暂时出现故障,请稍后再试!\n2.请检查你的网络设置?")
.setPositiveButton("确定",nil)
.setNeutralButton("检查 Wi-Fi",{onClick=function()
intent = Intent(Settings.ACTION_WIFI_SETTINGS)
this.startActivity(intent)
end})
.setNegativeButton("检查 移动数据连接",{onClick=function()
intent = Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)
this.startActivity(intent)
end})
.show()
else
code = tonumber(string.match(content,'"code":(.-),'))-- 状态码
msg = string.match(content,'"msg":"(.-)"')-- 消息
if(code == 200) then
new_versionCode = tonumber(string.match(content,'"version_code":(.-),'))--版本号
new_versionName = string.match(content,'"version_name":"(.-)"')--版本名
apk_url = string.gsub(string.match(content,'"apk_url":"(.-)"'),'\\','')--下载地址
update_log = string.gsub(string.match(content,'"update_log":"(.-)"'),'\\n',"\n")--更新日志
update_date = string.match(content,'"update_time":"(.-)"')--发布更新时间
if (new_versionCode > versionCode) then
AlertDialog.Builder(this)
.setTitle("发现新版本")
.setMessage("当前版本:V"..versionName.."("..versionCode..")\n最新版本:V"..new_versionName.."("..new_versionCode..")\n版本发布时间:"..update_date.."\n\n更新日志:\n"..update_log)
.setPositiveButton("立即更新",{onClick=function()
print("请选择一个应用或浏览器打开")
intent = Intent("android.intent.action.VIEW")
intent .setData(Uri.parse(apk_url))
this.startActivity(Intent.createChooser(intent, "请选择一个应用或浏览器用以下载最新版 APP"))
end})
.setNeutralButton("复制链接",{onClick=function()
activity.getSystemService(Context.CLIPBOARD_SERVICE).setText(apk_url)--将下载链接复制到剪切板
print("新版 APP 下载链接,复制成功!请粘贴到浏览器下载。")
end})
.setNegativeButton("以后再说",nill)
.show()
else
AlertDialog.Builder(this)
.setTitle("无可用更新")
.setMessage("您使用的是最新版本!\n当前版本:"..versionName.."("..versionCode..")\n最新版本:"..new_versionName.."("..new_versionCode..")")
.setPositiveButton("知道啦",nil)
.show()
end
else
AlertDialog.Builder(this)
.setTitle("更新为空")
.setMessage("本站未发布更新")
.setPositiveButton("退下吧",nil)
.show()
end
end
end)
也只需要更改appid为你的appid
import "android.content.Intent"
import "android.net.Uri"
import "android.provider.Settings"
import "android.app.ProgressDialog"
import "android.app.AlertDialog"
local appid =12278
--将 10001 改成你在 https://aus.nowtime.cc/console/app_list 获取的 APPID
--获取方法[教程可能有点旧(其实我太懒),就先将就下吧] https://nowtime.cc/lua/331.html
local packinfo = this.getPackageManager().getPackageInfo(this.getPackageName(),((32552732/2/2-8183)/10000-6-231)/9)
local appinfo = this.getPackageManager().getApplicationInfo(this.getPackageName(),0)
local versionName = tostring(packinfo.versionName)-- 版本名,不要动这里(cc.nowtime)
local versionCode = tonumber(packinfo.versionCode)-- 版本号,不要动这里(10010)
--不要动这个
local check_update_url = "https://aus.nowtime.cc/api/query/post?appid="..appid.."&version_code="..versionCode
--不要动这个
if(activity.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo() == nil) then
AlertDialog.Builder(this)
.setTitle("提示")
.setMessage("你未连接至互联网 或 当前连接的网络不可用,请检查你的网络设置")
.setNeutralButton("确定",nil)
.setNegativeButton("打开 数据连接",{onClick=function()
intent = Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)
this.startActivity(intent)
end})
.setPositiveButton("连接 Wi-Fi",{onClick=function()
intent = Intent(Settings.ACTION_WIFI_SETTINGS)
this.startActivity(intent)
end})
.show();
return false
-- 就此中断,不再继续执行下面代码
end
Toast.makeText(activity, "正在努力加载公告中……",Toast.LENGTH_SHORT).show()
Http.get(check_update_url,nil,"UTF-8",nil,function(http_code,content,cookie,header)
if (http_code == -1) then
Toast.makeText(activity, "很抱歉,加载公告失败,请重试或检查你的网络设置",Toast.LENGTH_SHORT).show()
else
code = tonumber(string.match(content,'"code":(.-),'))-- 状态码
if(code == 200) then
post = string.gsub(string.match(content,'"post":"(.-)"'),'\\n',"\n")--公告内容
post_time = string.match(content,'"post_time":"(.-)"')--发布公告时间
AlertDialog.Builder(this)
.setTitle("公告")
.setMessage("公告发布时间:"..post_time.."\n"..post)
.setPositiveButton("知道啦",nil)
.show()
else
--出现此错误,请软件作者加QQ群反馈:773641216
Toast.makeText(activity, "本站暂未发布公告!",Toast.LENGTH_SHORT).show()
end
end
end)
麻木博客微信公众号回复:fas源文件 下载源件
点我下载本站软件查看效果