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

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端是解决不了的

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