AiWork显示一个倒计时的Toast消息

已知toast函数的显示时长是固定2秒。
设定一个在屏幕上显示的指定时长如30秒的toast倒计时,可以让tost不间断显示,又不会造成堵塞和间断

/**
 * 显示一个倒计时的 Toast 消息。
 *
 * @param {string} [text] - 要显示的文本,如果为空则显示“倒计时”。
 * @param {number} remainingTime - Toast 显示的总时长(秒)
 * @author 飞云
 * @wechat imfeiyun
 * @link  http://www.feiyunjs.com
 */
function countdown(remainingTime, text) {
    const interval = setInterval(() => {
        const displayText = text ? `${text} ${remainingTime} 秒` : `倒计时 ${remainingTime} 秒`;
        toast.show(displayText); // 显示内容

        remainingTime -= 2; // 每次减少 2 秒
        if (remainingTime <= 0) {
            clearInterval(interval); // 清除定时器
            // console.log("Toast 结束"); // 处理结束逻辑
        }
    }, 2000); // 每 2 秒调用一次
}

// 使用示例
countdown(30); // 30 秒

将函数修改为可变参数:

/**
 * 倒计时函数,显示剩余时间。
 * @param {number|string} arg1 - 可以是倒计时的秒数或显示的文本。
 * @param {number|string} arg2 - 可以是倒计时的秒数或显示的文本。
 * @author 飞云
 * @wechat imfeiyun
 * @link  http://www.feiyunjs.com
 */
function countdownEx(arg1, arg2) {
    let remainingTime = null; // 剩余时间初始化为 null
    let text = null; // 显示文本初始化为 null

    // 根据参数类型判断第一个参数
    if (typeof arg1 === 'number' && arg1 > 0) {
        remainingTime = arg1; // 如果是有效的数字,则赋值给剩余时间
    } else if (typeof arg1 === 'string') {
        text = arg1; // 如果是字符串,则赋值给显示文本
    }

    // 根据参数类型判断第二个参数
    if (typeof arg2 === 'number' && arg2 > 0) {
        remainingTime = arg2; // 如果是有效的数字,则赋值给剩余时间
    } else if (typeof arg2 === 'string') {
        text = arg2; // 如果是字符串,则赋值给显示文本
    }

    // 检查剩余时间是否有效
    if (remainingTime === null) {
        console.error("必须提供有效的剩余时间!"); // 报错信息
        return; // 终止函数
    }

    // 设置定时器,每2秒更新一次
    const interval = setInterval(() => {
        // 构建要显示的文本
        const displayText = text ? `${text} ${remainingTime} 秒` : `倒计时 ${remainingTime} 秒`;
        toast.show(displayText); // 显示内容

        remainingTime -= 2; // 每次减少 2 秒
        if (remainingTime <= 0) {
            clearInterval(interval); // 清除定时器
        }
    }, 2000); // 每 2 秒调用一次
}

// 使用示例
countdownEx(10); // 仅提供剩余时间
countdownEx("剩余时间", 10); // 文本在前,仍然有效
countdownEx(5, "倒计时"); // 正常使用
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » AiWork显示一个倒计时的Toast消息

企业级大数据智能营销管理系统

了解详情