Maison Applet WeChat Développement WeChat Développement de compte public WeChat pour implémenter une fonction de compte à rebours (code pur)

Développement de compte public WeChat pour implémenter une fonction de compte à rebours (code pur)

Jul 27, 2018 pm 04:35 PM
android iphone javascript

Ce qui suit est un code que j'ai écrit moi-même. La fonction est d'implémenter le compte à rebours pendant le processus de développement du compte officiel WeChat. L'effet est le suivant, la commande a été soumise, veuillez effectuer le paiement dans les 2 minutes et 57 secondes. Analyse de code pur.

Développement de compte public WeChat pour implémenter une fonction de compte à rebours (code pur)

L'idée initiale ne prenait pas en compte la situation de la page s'exécutant en arrière-plan et verrouillant l'écran. Le code est le suivant :

let interval = setInterval(() => {
            let {staticTime} = this.state;
            staticTime = staticTime - 1;
            if (staticTime <= 0) {
                clearInterval(interval);
                this.setState({
                    tip:&#39;支付超时&#39;,
                    staticTime:0
                });
                return;
            }
            let minutes = parseInt(staticTime/60);
            let Seconds = staticTime%60;
            let tip = &#39;订单已提交,请在&#39;+minutes+&#39;分&#39;+Seconds+&#39;秒内完成支付&#39;;
            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) {
                clearInterval(interval);
                this.setState({
                    tip:&#39;支付超时&#39;,
                    staticTime:0,
                });
                return;
            }
            let minutes = parseInt(staticTime/60);
            let Seconds = staticTime%60;
            let tip = &#39;订单已提交,请在&#39;+minutes+&#39;分&#39;+Seconds+&#39;秒内完成支付&#39;;
            this.setState({
                tip:tip,
                staticTime:staticTime,
            });
        }, 1000);
        this.listenPageShowHideHandle();
    
     //计算页面在后台的时间
Copier après la connexion

listenPageShowHideHandle = () =>{

let {backGroundTime} = this.state;
let start, end;
let self = this;
document.addEventListener("visibilitychange", function() {
    if(document.visibilityState == &#39;hidden&#39;){
        start = new Date().getTime();
    }else if(document.visibilityState == &#39;visible&#39;){
        end = new Date().getTime();
        backGroundTime = Math.floor((end - start)/1000);
        self.setState({backGroundTime});
        console.log(&#39;时间差:&#39;, backGroundTime);
    }
    console.log( document.visibilityState );
});
Copier après la connexion

}

改造之后发先问题依然存在。原因是:
You cannot continue to run javascript while the iPhone is sleeping using 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 = setInterval(()=>{
        let {orderTime, staticTime} = this.state;
        let nowTime = Date.now();
        let sub = Math.floor((orderTime + staticTime - nowTime)/1000);
        console.log(&#39;sub&#39;,sub);
        if(sub<=0){
            clearInterval(interval);
            this.setState({
                tip:&#39;支付超时&#39;,
                isFalse:true
            });
            return;
        }
        let minutes = parseInt(sub/60);
        let Seconds = sub%60;
        let tip = &#39;订单已提交,请在&#39;+minutes+&#39;分&#39;+Seconds+&#39;秒内完成支付&#39;;
        console.log(tip);
        this.setState({
            tip:tip,
            isFalse:false
        });
    },1000);
Copier après la connexion

apache php mysql

Articles connexes :

Paramètres d'autorisation du compte public WeChat, autorisation publique WeChat

La méthode de mise en œuvre du compte public WeChat en cliquant sur le menu pour ouvrir et vous connecter le microsite

Vidéos associées :

Tutoriels vidéo de développement de plateforme publique Chuanzhi et Dark Horse WeChat

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Xiaomi Redmi Note 14 Pro Plus arrive en tant que premier smartphone Qualcomm Snapdragon 7s Gen 3 avec caméra Light Hunter 800 Xiaomi Redmi Note 14 Pro Plus arrive en tant que premier smartphone Qualcomm Snapdragon 7s Gen 3 avec caméra Light Hunter 800 Sep 27, 2024 am 06:23 AM

Le Redmi Note 14 Pro Plus est désormais officiel en tant que successeur direct du Redmi Note 13 Pro Plus de l'année dernière (375 $ sur Amazon). Comme prévu, le Redmi Note 14 Pro Plus est en tête de la série Redmi Note 14 aux côtés du Redmi Note 14 et du Redmi Note 14 Pro. Li

Le design de l'Oppo Find X8 ressemble à un croisement entre Apple iPhone 16 Pro et OnePlus Open dans les premières images Le design de l'Oppo Find X8 ressemble à un croisement entre Apple iPhone 16 Pro et OnePlus Open dans les premières images Sep 28, 2024 am 06:04 AM

Historiquement, Oppo a actualisé sa série phare « Find X » à la fin de l'hiver ou au début du printemps, à l'exception du Find X original annoncé en juin 2018. À cette fin, les Find X7 et Find X7 Ultra ont à peine plus de six mois. à ce point. H

Gate.io Trading Platform Office Application Téléchargement et Adresse d'installation Gate.io Trading Platform Office Application Téléchargement et Adresse d'installation Feb 13, 2025 pm 07:33 PM

Cet article détaille les étapes pour enregistrer et télécharger la dernière application sur le site officiel de Gate.io. Premièrement, le processus d'enregistrement est introduit, notamment le remplissage des informations d'enregistrement, la vérification du numéro de messagerie électronique / téléphone portable et la réalisation de l'enregistrement. Deuxièmement, il explique comment télécharger l'application gate.io sur les appareils iOS et les appareils Android. Enfin, les conseils de sécurité sont soulignés, tels que la vérification de l'authenticité du site officiel, l'activation de la vérification en deux étapes et l'alerte aux risques de phishing pour assurer la sécurité des comptes et des actifs d'utilisateurs.

ANBI App Office Télécharger V2.96.2 Dernière version Installation de la version Android officielle de l'ANBI ANBI App Office Télécharger V2.96.2 Dernière version Installation de la version Android officielle de l'ANBI Mar 04, 2025 pm 01:06 PM

Les étapes d'installation officielles de l'application Binance: Android doit visiter le site officiel pour trouver le lien de téléchargement, choisissez la version Android pour télécharger et installer; iOS recherche "Binance" sur l'App Store. Tous devraient prêter attention à l'accord par le biais des canaux officiels.

Comment résoudre le problème de la 'Erreur du signe de la clé de tableau non définie' lors de l'appel d'alipay easysdk à l'aide de PHP? Comment résoudre le problème de la 'Erreur du signe de la clé de tableau non définie' lors de l'appel d'alipay easysdk à l'aide de PHP? Mar 31, 2025 pm 11:51 PM

Description du problème Lors de l'appel d'Alipay Easysdk en utilisant PHP, après avoir rempli les paramètres en fonction du code officiel, un message d'erreur a été signalé pendant l'opération: "UNDEFINED ...

iQOO Z9 Turbo+ fait ses débuts sous le nom de smartphone Dimensity 9300+ avec une autonomie de batterie « hors du commun » iQOO Z9 Turbo+ fait ses débuts sous le nom de smartphone Dimensity 9300+ avec une autonomie de batterie « hors du commun » Sep 26, 2024 am 06:20 AM

Le Z9 Turbo+ est maintenant disponible sur la boutique en ligne chinoise de Vivo à 2 199 yuans (~ 313 $) pour un modèle de base de 12 Go de RAM/256 Go de stockage interne, tandis que le RedmiK70 Extreme Edition a commencé à 2 599 yuans (~ 370 $) avec la même configuration : en fait, son nouveauiQ

Lenovo dévoile une nouvelle option de couleur pour la tablette de jeu Legion Y700 2024 Lenovo dévoile une nouvelle option de couleur pour la tablette de jeu Legion Y700 2024 Sep 29, 2024 am 06:05 AM

Lenovo se prépare à lancer le Legion Y700 2024 le 29 septembre en Chine. Cette nouvelle tablette de jeu Android affrontera la RedMagic Nova, et la société a déjà confirmé presque toutes les spécifications de l'appareil. Maintenant, quelques heures avant le plein

Télécharger le lien du package d'installation de la version ouyi iOS Télécharger le lien du package d'installation de la version ouyi iOS Feb 21, 2025 pm 07:42 PM

OUYI est un échange de crypto-monnaie de pointe avec son application iOS officielle qui offre aux utilisateurs une expérience de gestion des actifs numériques pratique et sécurisée. Les utilisateurs peuvent télécharger gratuitement le package d'installation de la version ouyi iOS via le lien de téléchargement fourni dans cet article, et profiter des principales fonctions suivantes: plateforme de trading pratique: les utilisateurs peuvent facilement acheter et vendre des centaines de crypto-monnaies sur l'application OUYI iOS, y compris Bitcoin et Ethereum . Stockage sûr et fiable: OUYI adopte une technologie de sécurité avancée pour fournir aux utilisateurs un stockage d'actifs numériques sûrs et fiables. 2FA, l'authentification biométrique et d'autres mesures de sécurité garantissent que les actifs des utilisateurs ne sont pas violés. Données de marché en temps réel: l'application OUYI iOS fournit des données et des graphiques de marché en temps réel, permettant aux utilisateurs de saisir le cryptage à tout moment

See all articles