欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > 【uniapp】热更新前后台方法(简单实现)

【uniapp】热更新前后台方法(简单实现)

2024/10/24 21:21:05 来源:https://blog.csdn.net/MoFe1/article/details/142849376  浏览:    关键词:【uniapp】热更新前后台方法(简单实现)

前端使用uniapp打包的app应用

前端:

在项目app.vue中加入以下代码

methods:{update() {//console.log(this.risun)plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {console.log('widgetInfo', widgetInfo)uni.request({url: '',  //检查更新接口地址data: {version: widgetInfo.version,versionCode: widgetInfo.versionCode},header: {'Content-Type': 'application/x-www-form-urlencoded'},method: 'POST',success: function(result) {console.log('result', result) var data = result.data;console.log('data', data)if (data.versionStatus == '2') {//console.log('进入方法',data.updateUrl)uni.downloadFile({url: data.updateUrl,//热更新包地址success: function(downloadResult) {console.log('downloadResult',downloadResult)if (downloadResult.statusCode === 200) {console.log('statusCode200');uni.showModal({title: '有新版本更新',content: '是否下载更新',success: function(res) {if (res.confirm) {console.log('用户点击确定');plus.runtime.install(downloadResult.tempFilePath, {force: true},function() {uni.showToast({title: "安装成功",icon: 2000,duration: 1000})setTimeout(function() {plus.runtime.restart();},1100)},function(e) { // }) console.log(e)uni.showToast({title: "安装失败",icon: 2000,duration: 1000})});} else if (res.cancel) {console.log('用户点击取消');return;}}})}},fail: function(res) {console.log('失败')}});}}});});}}

后端:

类:

public class AppUpdateEntity 
{/// <summary>/// 版本/// </summary>/// <returns></returns>public string Version { get; set; }/// <summary>/// 版本代码/// </summary>/// <returns></returns>public string VersionCode { get; set; }/// <summary>/// 数据创建时间/// </summary>/// <returns></returns>[JsonConverter(typeof(DateTimeJsonConverter))]public DateTime? CreateDate { get; set; }/// <summary>/// 文件地址/// </summary>/// <returns></returns>public string FilePath { get; set; }
}

方法:(已yisha框架为例)

[HttpPost]
public async Task<object> CheckVersion([FromForm] string version = "", [FromForm] string versionCode = "")
{object obj = new { message = "操作失败", versionStatus = "0", updateUrl = "" };TData<List<AppUpdateEntity>> tdata = await new AppUpdateBLL().GetList(null);//获取数据库中存储的更新信息集合List<AppUpdateEntity> list = new List<AppUpdateEntity>();if (tdata.Tag == 1){list = tdata.Data;if (list != null && list.Count > 0){AppUpdateEntity aPPUpdateEntity = list.OrderByDescending(a => a.CreateDate).ToList().FirstOrDefault();//获取集合中最新一条数据//如果传入版本号和当前最新一条版本号不匹配,则返回更新信息if (!version.Equals(aPPUpdateEntity.Version)){obj = new { message = "更新版本", versionStatus = "2", updateUrl = aPPUpdateEntity.FilePath };}else{obj = new { message = "无需更新", versionStatus = "1", updateUrl = "" };}}else{obj = new { message = "操作失败", versionStatus = "1", updateUrl = "" };}}else{obj = new { message = "操作失败", versionStatus = "0", updateUrl = "" };}return (obj);
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com