better2018
better2018
  • 发布:2018-06-11 09:12
  • 更新:2018-06-11 10:53
  • 阅读:6085

app如何强制自动升级更新(付费)

分类:HBuilder

用Hbuilder制作的移动app,想实现用户一打开app自动检测新版本,若有更新自动在app内实现强制更新,不需要用户选择是否更新。
求大神帮忙,若解决,必酬谢。
微信、QQ:953485331。

2018-06-11 09:12 负责人:无 分享
已邀请:
uniapp视频教程

uniapp视频教程 - https://www.uni-app.cn/ (枫桥居 uni-app视频教程)

演示一下app自动更新

hibody

hibody - zhfssd;l

这个好实现,已经实现了

  • better2018 (作者)

    我时间紧,所以你可以帮我短时间实现吗,我给你付费哈哈。


    2018-06-11 09:17

回梦無痕

回梦無痕 - 暂停服务

在检测更新之后,直接跳过询问框就行了,直接下载更新(如果是AppStore,直接跳转AppStore)。

uniapp视频教程

uniapp视频教程 - https://www.uni-app.cn/ (枫桥居 uni-app视频教程)

这个到时候我会制作一个课程,关注我

better2018

better2018 (作者) - better

我时间紧,所以你可以帮我短时间实现吗,我给你付费哈哈。

  • 回梦無痕

    你贴出你现有的升级代码,直接帮你改一下就行了。


    2018-06-11 09:26

better2018

better2018 (作者) - better

你远程我的电脑,直接帮我实现吧

better2018

better2018 (作者) - better

你远程我的电脑,直接帮我实现吧

uniapp视频教程

uniapp视频教程 - https://www.uni-app.cn/ (枫桥居 uni-app视频教程)

checkApp: function(url, version) {  
			var nowv = plus.runtime.version.replace(/\./g, '')  
			var newv = ''  
			if(version) {  
				newv = version.replace(/\./g, '')  
			}  
			if(newv && url && parseInt(newv) > parseInt(nowv)) {  
				mui.confirm('发现新版本,是否立即升级', '新版提醒', ['稍后再说', '现在升级'], function(e) {  
					if(e.index == 1) {  
						plus.runtime.openURL(url)  
					}  
				})  
				return true  
			} else {  
				return false  
			}  
		},  
		checkWgt: function(url, version) {  
			var newVersion = version  
			mui.plusReady(function() {  
				plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {  
					var nowv = wgtinfo.version.replace(/\./g, '')  
					var newv = ''  
					if(version) {  
						newv = version.replace(/\./g, '')  
					}  
					if(newv && url && newv > nowv) {  
						mui.toast('发现新版,自动更新:' + nowv);  
						//执行更新  
						plus.io.resolveLocalFileSystemURL('_doc/update/' + version + '.wgt', function(entry) {  
							entry.remove();  
						});  
						//下载wgt  
						plus.downloader.createDownload(url, {  
							filename: "_doc/update/"  
						}, function(d, status) {  
							if(status == 200) {  
								var path = d.filename;  
								// 安装wgt包  
								plus.runtime.install(path, {}, function() {  
									mui.toast(newVersion + " 更新成功!");  
									setTimeout(function() {  
										plus.runtime.restart();  
									}, 500);  
								}, function(e) {  
									mui.toast("更新包安装失败:" + e.message);  
								});  
							} else {  
								mui.toast("下载更新包失败!");  
							}  
						}).start();  
						return true  
					} else {  
						return false  
					}  
				})  
			})  
		}

下面是调用方法

util.ajax('post', '/api/setting/checkUpdate', data, function(rs) {  
				if(rs.code > 0) {  
					//检查app安装包  
					var newApp = that.checkApp(rs.data.app_url, rs.data.app_version)  
					if(!newApp) {  
						//检查更新包  
						that.checkWgt(rs.data.wgt_url, rs.data.wgt_version)  
					}  
				}  
			})  

大A

大A

服务端必须做手脚 否则单凭app端是解决不了的

该问题目前已经被锁定, 无法添加新回复