[已删除]
[已删除]
  • 发布:2020-06-12 16:04
  • 更新:2021-03-09 20:12
  • 阅读:4405

uniapp 热更新问题,急需解决方法

分类:uni-app

如下图所示,我的详细操作步骤:

1、在旧版本,导航栏是一个扫码的按钮,这个时候我进行热更新,热更新完成后,调用了restart方法重启app,重启后发现导航栏原本的扫码按钮,已经被替换了新版本的 + 号按钮。

2、上面的操作是没问题的,但是,热更新完成后,我退出app,再重新进来,发现更新后的导航栏又变成了旧版本的扫码按钮

3、我发现退出app后,重新进,只是导航栏又变成了旧版本的,但其它新版本的代码是还存在的。

tips:
1、手机端运行的基座SDK是HBuilderX2.6.16版本打包的,热更新打的包也是用HBuilderX2.6.16版本打包的

2、这个打的wgt更新包,在ios上进行更新,是没有上面描述的这些问题的,只会在android上有。

2020-06-12 16:04 负责人:DCloud_Android_ST 分享
已邀请:
[已删除]

[已删除] (作者)

望解答!!非常感谢

  • [已删除] (作者)

    请问有人遇到过这种问题吗。。

    2020-06-12 16:05

996上班族

996上班族 - 996上班族

你有没有注意到你打wgt包时候下面一行字,大概意思是要开发工具版本要和打包服务器版本一致,否则可能会出现问题。至于是不是这个问题我不确定。

  • [已删除] (作者)

    非常感谢您解答问题,我的apk是用2.6.16打包的,然后wgt包也是用2.6.16打包的

    2020-06-12 16:22

996上班族

996上班族 - 996上班族

所以我热更新进陷入了两难,不升级打的wgt可能有问题,升级了,在旧的版本开发的app上更新新版本开发的wgt又有问题,emmmm。。。。。

  • [已删除] (作者)

    我之前刚接触热更新时,也是碰到了这个尴尬的地步,没办法,只能去整包更新到同一版本

    2020-06-12 16:23

DCloud_Android_ST

DCloud_Android_ST

升级HX 2.7.9+

  • [已删除] (作者)

    升级HX版本,到时候出了新的HX版本,我又得去整包更新

    2020-06-12 16:29

  • [已删除] (作者)

    现在2.6.16是正式打包服务器,你说的升级HX版本,我如果升级了,后续每次更新都得去整包更新,而不是热更新

    2020-06-12 16:30

  • DCloud_Android_ST

    回复 [已删除]: HX2.7.9 修复了类似的问题。可以先测试验证一下。不可能在原版本修复问题还要更新的

    2020-06-12 16:38

  • [已删除] (作者)

    回复 DCloud_Android_ST: HX2.7.9是正式打包服务器了吗

    2020-06-12 16:40

  • [已删除] (作者)

    回复 DCloud_Android_ST:如果HX2.7.9不是正式打包服务器,那我不如就在2.6.16直接重新打个apk

    2020-06-12 16:40

  • DCloud_Android_ST

    回复 [已删除]: 是正式的 升级的问题你可以自己选择

    2020-06-12 16:48

  • [已删除] (作者)

    回复 DCloud_Android_ST: 可以发一下关于HX版本,哪个版本是正式打包服务器的那篇文章吗,自己没找到

    2020-06-12 16:59

  • [已删除] (作者)

    回复 DCloud_Android_ST: 麻烦提供一下,我需要具体的版本说明来决定哪个版本当成长期打包的工具

    2020-06-12 17:10

d***@qq.com

d***@qq.com

热更新问题这多呀. 这上线了怎么办

a***@163.com

a***@163.com

我们也是遇到了同样的问题,底部导航栏改动了,就热更了奇怪的问题

  • DCloud_Android_ST

    使用新版本 试下。如果还有问题建议新建一个ask! 将问题描述清楚。附件可以复现问题的demo我们会尽快验证

    2020-08-14 11:49

3***@qq.com

3***@qq.com

热更下载失败是因为什么

[已删除]

[已删除]

请问一下热更新的我的manifest里appid是UNI,,我把wgt文件名的UNI改成了UNI,去掉了下划线,请问这个可以吗??我感觉都没进更新代码??请问可以把你的热更新的代码发一份出来吗?我是直接这样

let _baseUrl = this.$u.http.config.baseUrl;  
            // #ifdef APP-PLUS    
            plus.runtime.getProperty(plus.runtime.appid, function(widgetInfo) {  
                uni.request({  
                    url: _baseUrl + '/platform/apk/getInfo',  
                    data: {  
                        version: widgetInfo.version,  
                        name: widgetInfo.name,  
                        pkgName: 'com.appinner.cangxis'  
                    },  
                    success: (result) => {  
                        let data = result.data;  
                        let pkg;  
                        try{  
                            pkg = data.data.pkg  
                        }catch(e){  
                            //TODO handle the exception  
                            pkg = {};  
                        }  

                        if (pkg.wgtUrl && compareVersion(widgetInfo.version, pkg.version)) {  
                            uni.showLoading({  
                                title: '当前有新版本,正在更新...'  
                            })  
                            uni.downloadFile({  
                                url: pkg.wgtUrl,  
                                success: (downloadResult) => {  
                                    if (downloadResult.statusCode === 200) {  
                                        plus.runtime.install(downloadResult.tempFilePath, {  
                                                force: false  
                                            },  
                                            function() {  
                                                console.log('安装成功...');  
                                                uni.hideLoading();  
                                                plus.runtime.restart();  
                                            },  
                                            function(e) {  
                                                console.error('安装失败...');  
                                                uni.hideLoading();  
                                            });  
                                    }  
                                },  
                                fail: function () {  
                                    uni.hideLoading();  
                                    uni.showToast({  
                                        title: '下载更新失败'  
                                    })  
                                }  
                            });  
                        }  
                    }, error: (msg) => {  
                        console.log(msg)  
                    }  
                });  
            });  

            /**  
             * @param {Object} ov 旧版本号  
             * @param {Object} nv 新版本号  
             */  
            function compareVersion(ov, nv) {  
                if (!ov || !nv || ov == "" || nv == "") {  
                    return false;  
                }  
                var b = false,  
                    ova = ov.split(".", 4),  
                    nva = nv.split(".", 4);  
                for (var i = 0; i < ova.length && i < nva.length; i++) {  
                    var so = ova[i],  
                        no = parseInt(so),  
                        sn = nva[i],  
                        nn = parseInt(sn);  
                    if (nn > no || sn.length > so.length) {  
                        return true;  
                    } else if (nn < no) {  
                        return false;  
                    }  
                }  
                if (nva.length > ova.length && 0 == nv.indexOf(ov)) {  
                    return true;  
                }  
                return false  
            }  
            // #endif

感觉没起效

谢谢大哥

  • 996上班族

    manifest的版本号和版本名称有对应修改吗?

    2021-03-10 10:31

  • DCloud_Android_ST

    appid是唯一的 不可以乱改。会导致应用出现不可预期问题

    2021-03-10 10:43

  • [已删除]

    回复 DCloud_Android_ST: 我看文档没有__所以把它去掉了...没去掉就好了

    2021-03-10 12:10

  • [已删除]

    回复 996上班族: 都改了的..就是我把_去掉了导致的__UNI_不能去掉\...

    2021-03-10 12:10

  • DCloud_Android_ST

    回复 [已删除]: 文档哪里 发链接 我们看下

    2021-03-10 12:18

  • [已删除]

    回复 DCloud_Android_ST: 应该是__被编码了...

    2021-03-10 12:59

  • [已删除]

    回复 DCloud_Android_ST: 在这里[https://ask.dcloud.net.cn/article/35667]...里面有个存放路径

    2021-03-10 13:01

  • [已删除]

    回复 DCloud_Android_ST: 那个有资源更新的时候停留在app等待页,不启动app的其他页面改怎么做呢?

    2021-03-10 13:05

  • 996上班族

    回复 DCloud_Android_ST: 他改的是wgt的文件名吧,这也不行吗? 我也修改了,只不过是在最后加上了_2_10_0类似这样的以区分wgt版本,热更新没问题啊

    2021-03-10 17:52

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