网站建设

城市: 北京 天津 湖北 广东 湖南 江西 河南 河北 陕西 吉林 辽宁 黑龙江 福建 上海 云南 贵州 四川 成都 更多
  当前位置:首页 > 微信开发 > 公众号开发 >

微信公众号开发,实现倒计时的一个「微信整合开发」功能(纯代码)

作者:网站优化 来源:网络整理 发布时间:2019-05-07 浏览

0

以下是我自己编写的一个「商「微商城平台哪个好」城微信商城」代码,功能是在微信公众「121店微信分销系统」号开发过程中实现倒计时「微信商城公众号怎么开」的。效果如下,订单已提交,请在2分57秒内完成支付。纯代码解析。开始的思路没有考虑页面在后台运行以及锁屏等情况。代码如下:let in...

以下是我自己编写的一个代码,功能是在微信公众号开发过程中实现倒计时的。效果如下,订单已提交,请在2分57秒内完成支付。纯代码解析。

1.png

开始的思路没有考虑页面在后台运行以及锁屏等情况。代码如下:

let interval = setInterval(() => {
            let {staticTime} = this.state;
            staticTime「怎么样开通微信商城」 = staticTime - 1;
            if (staticTime <= 0) {
                clearInterval(interval);
                this.setState({
                    tip:'支付超时',
                    staticTime:0
                });
                return;
            }
            let minutes = parseInt(staticTime/60);
            let Seconds = staticTime%60;
            let tip = '订单已提交,请在'+minutes+'分'+Sec「开发微信社区」onds+'秒内完成支付';
            this.setState({
                tip:tip,
                staticTime:staticTime 
            });
        }, 1000);
后来测试发现锁屏或者把页面留在后台,计算就不对,于是把代码进行了如下改造。



  let interval = setInterval(() => {
            let {backGroundTime, staticTime} = this.state;
            this.setState({
        「微信公众号大全」        backGroundTime:0
            });
            staticTime = staticTime - backGroundTime - 1; 
            if (staticTime <= 0) {
                clearInte「定制微信小程序哪家便宜」rval(interval);
                this.setState({
                    tip:'支付超时',
                    staticTime:0,
        「比较火的微信商城」        });
                return;
            }
            let minutes = parseInt(staticTime/60);
            let Seconds = staticTime%60;
            let tip = '订单已提交,请在'+minutes+'分'+Seconds+'秒内完成支付';
            this.setState({
                tip:tip,
                staticTime:staticTime,
            });
        }, 1000);
        this.listenPageShowHideHandle();
    
     //计算页面在后台的时间

liste「微信公众号平台登录」nPageShowHideHandle = () =>{

let {backGroundTime} = this.state;
let start, en「微信微商群」d;
let self = this;
document.addEventListener("visibilitychange", function() {
    if(document.visibilityState == 'hidden'){
        start = new Date().getTime();
    }else if(document.visibilityState == 'visible'){
        end = new Date().getTime();
        backGroundTime = Math.floor((end - start)/1000);
        self.setState({backGroundTime});
        console.log('时间差:', backGroundTime);
    }
    console.log( document.visibilityState );
});

}

改造之后发先问题依然存在。原因是:
You cannot continue to run javascript while the iPhone is sleeping us「微信公众号首页设计」ing setTimeout(), however.When the phone is put to sleep, Safari will kill any running javascript processes using setTimeout(). Check out this answer here for some reasons why this is done.

**解决方案:**
订单生成的时候我们记录下这个时间为A, 时间间隔为B(3分钟内需要付款,B为3*60*1000),C为现在的时间。我们使用setInterval 每个1秒读取一下时间。那么倒计时时间 == A+B-C,代码如下

 let interval = setInterv「下载微商城」al(()=>{
        let {orderTime, staticTime} = this.state;
        let nowTime = Date.now();
        let sub = Math.floor((orderTime + staticTime - nowTime)/1000);
        console.log('sub',sub);
        if(sub<=0){
            clearInterval(interval);
            this.setState({
                tip:'支付超时',
                isFalse:true
            });
            return;
        }
        let minutes = parseInt(sub/60);
        let Seconds = sub%60;
        let tip = '订单已提交,请在'+minutes+'分'+Seconds+'秒内完成支付';
        console.log(tip);
        this.setState({
            tip:tip,
            isFalse:false
        });
    },1000);

apache php mysql

相关文章:

微信公众号授权设置,微信公众授权

微信公众号点击菜单即可打开并登录微站的实现方法

相关视频:

传智、黑马微信公众平台开发视频教程

以上就是微信公众号开发,实现倒计时的一个功能(纯代码)的详细「微信服务器」内容,更多请关注php中文网其它相关文章!

相关热词搜索:支付 请在 公众 代码 订单

欢迎转载,转载请注明原文网址: https://www.seo-820.com/gzhkaifa/50196.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

Copyright © 2002-2018 seo-820.com 版权所有 粤ICP备15020538号    技术支持:优选网络

电脑版 | 移动版