2***@qq.com
2***@qq.com
  • 发布:2021-01-19 10:35
  • 更新:2021-01-19 11:32
  • 阅读:1473

【报Bug】uni.showModal 弹出框 滑屏也能关闭

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 2.9.3

手机系统: Android

手机系统版本号: Android 10

手机厂商: 小米

手机机型: 小米 10 pro

页面类型: nvue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
    //#ifdef APP-PLUS  
        uni.request({  
            method: 'GET',  
            url: config.baseUrl + '/api/v1/version',  
        }).then(data => {  
            var [error, res] = data  
            if(res.data.code === 1) {  
                let version = res.data.data.version.split('.').join('')  
                let appVersion = plus.runtime.version.split('.').join('')  
                console.log(version, appVersion)  
                if(parseInt(version) <= parseInt(appVersion)) {  
                    return  
                }  
                uni.showModal({  
                    title: '版本更新:' + res.data.data.version,  
                    content: res.data.data.desc,  
                    confirmText: "更新",  
                    showCancel: res.data.data.status === 0,  
                    success: function(e) {  
                        if (e.confirm || res.data.data.status === 1) {  
                            if (plus.os.name.toLowerCase() == 'ios') {  
                                // ios 更新  
                                plus.runtime.openURL(res.data.data.url)  
                            }else {  
                                var dtask = plus.downloader.createDownload(  
                                res.data.data.url, {},  
                                function(d, status) {  
                                    uni.showToast({  
                                        title: '下载完成',  
                                        mask: false,  
                                        duration: 1000  
                                    })  
                                    if (status == 200) {  
                                        plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, e => e, function(error) {  
                                            uni.showToast({  
                                                title: '安装失败-01',  
                                                icon: 'none',  
                                                mask: false,  
                                                duration: 1500  
                                            })  
                                        })  
                                    } else {  
                                        uni.showToast({  
                                            title: '更新失败-02',  
                                            icon: 'none',  
                                            mask: false,  
                                            duration: 1500  
                                        })  
                                    }  
                                })  

                                try {  
                                    dtask.start() // 开启下载的任务  
                                    var prg = 0  
                                    var showLoading = plus.nativeUI.showWaiting("正在下载")  
                                    dtask.addEventListener('statechanged', function(task, status) {  

                                        switch (task.state) {  
                                            case 1:  
                                                showLoading.setTitle('正在下载');  
                                            break;  
                                            case 2:  
                                                showLoading.setTitle('已连接到服务器');  
                                            break;  
                                            case 3:  
                                                prg = parseInt((parseFloat(task.downloadedSize) /parseFloat(task.totalSize)) *100);  
                                                showLoading.setTitle('  正在下载' + prg + '%  ')  
                                            break;  
                                            case 4:  
                                                plus.nativeUI.closeWaiting()  
                                                //下载完成  
                                              break  
                                          }  
                                    })  
                                }catch (err) {  
                                  plus.nativeUI.closeWaiting()  
                                  uni.showToast({  
                                    title: '更新失败-03',  
                                    icon: 'none',  
                                    mask: false,  
                                    duration: 1500  
                                  })  
                                }  
                            }  
                        }  
                    }  
                })  
            }else {  
                uni.showToast({  
                    title: res.data.message,  
                    icon: 'none'  
                })  
            }  
        })  
        //#endif

操作步骤:

uni.showModal 框弹出 全面屏手势 滑屏左侧返回 关闭弹框

预期结果:

uni.showModal 框弹 滑屏左侧返回不应该关闭

实际结果:

uni.showModal 框弹 滑屏左侧返回关闭了弹出框

bug描述:

app 打开强制更新 App.vue中 配置app整包更新方案, 强制更新没有取消按钮但是能滑屏关闭

2021-01-19 10:35 负责人:无 分享
已邀请:
DCloud_uniCloud_JSON

DCloud_uniCloud_JSON

  • 2***@qq.com (作者)

    onBackPress 这个函数在返回后不执行怎么办?

    2021-01-20 15:35

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