攻城狮已经疯了
攻城狮已经疯了
  • 发布:2020-06-24 11:06
  • 更新:2020-07-04 11:28
  • 阅读:2769

【报Bug】uni.showLoading() 快速连续调用,会闪烁。

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

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

HBuilderX类型: Alpha

HBuilderX版本号: 2.7.13

手机系统: 全部

页面类型: nvue

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

红米K30、红米K20、iPhone6、iPhone6s

示例代码:
// 下载进度监听  
downloadTask.onProgressUpdate(function(TaskD)  
{  
    // 进度显示框  
    if (this_obj.loadingText.length > 0 && TaskD.progress < 100)  // 这个不用管,是些判定而已  
    {  
        // ↓ 就是将进度文字给 title 参数  
        uni.showLoading({ title: this_obj.loadingText + " " + TaskD.progress+"%", mask: false });  
    }  
    // 传回给objC的监听方法的数据  
    var backThis = {  
        total: TaskD.totalBytesExpectedToSend,  
        uploaded: TaskD.totalBytesSent,  
        percentage: TaskD.progress  
    };  
    // 监听回调  
    if (objC && objC.progress) { objC.progress(backThis); }  
});

操作步骤:
  1. uni.downloadFile() 下载文件
  2. downloadTask.onProgressUpdate() 中监听下载进度,进行loading弹框提示

预期结果:

loading框一直显示,只是上面的进度文字从0~100变化。

实际结果:

loading框一直闪烁,title文字每变一次,框就会重新弹出一次。

bug描述:

主要是下载文件的时候,想体现出下载的进度。
于是将下载api的进度回调数据用在 uni.showLoading() 上面。
以前不是V3的时候,重复调用 showLoading 只会改变加载框上的文字;但是现在框会 弹出 → 关闭 → 弹出 这样一直闪烁。
还有一点:!!! 编译模式v3->nvue: 我“fast”、“纯nvue”都没有选。
使用的代码我截取 ↑ 。这个你们随便下点东西就看得出来,就不用录屏了。

2020-06-24 11:06 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com

建议改用

let waiting =  plus.nativeUI.showWaiting("正在下载 - 10%");  
waiting.setTitle("正在下载 - 20%");  
waiting.setTitle("正在下载 - 30%");  
...

亲测有效,
http://www.html5plus.org/doc/zh_cn/nativeui.html#plus.nativeUI.showWaiting

注意
第一次打开的时候 ,plus.nativeUI.showWaiting(title, waitingStyles);
title的宽度或者waitingStyles的宽度,要大于后面setTitle中的文字宽度,不然setTitle中的文字显示不全,无法做到自适应。

4***@qq.com

4***@qq.com

我也遇到相同的问题,请问楼主解决没。

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