Heim WeChat-Applet WeChat-Entwicklung Entwicklung eines öffentlichen WeChat-Kontos zur Implementierung einer Countdown-Funktion (reiner Code)

Entwicklung eines öffentlichen WeChat-Kontos zur Implementierung einer Countdown-Funktion (reiner Code)

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

Das Folgende ist ein Code, den ich selbst geschrieben habe. Die Funktion besteht darin, den Countdown während des Entwicklungsprozesses des offiziellen WeChat-Kontos zu implementieren. Der Effekt ist wie folgt: Die Bestellung wurde aufgegeben. Bitte schließen Sie die Zahlung innerhalb von 2 Minuten und 57 Sekunden ab. Reine Codeanalyse.

Entwicklung eines öffentlichen WeChat-Kontos zur Implementierung einer Countdown-Funktion (reiner Code)

Die ursprüngliche Idee berücksichtigte nicht die Situation, dass die Seite im Hintergrund läuft und den Bildschirm sperrt. Der Code lautet wie folgt:

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();
    
     //计算页面在后台的时间
Nach dem Login kopieren

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 );
});
Nach dem Login kopieren

}

改造之后发先问题依然存在。原因是:
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);
Nach dem Login kopieren

Apache php mysql

Verwandte Artikel:

Autorisierungseinstellungen für das öffentliche WeChat-Konto, öffentliche WeChat-Autorisierung

Die Implementierungsmethode des öffentlichen WeChat-Kontos, indem Sie auf das Menü klicken, um die Microsite zu öffnen und sich bei ihr anzumelden

Verwandtes Video:

Video-Tutorials zur Entwicklung öffentlicher WeChat-Plattformen von Chuanzhi und Dark Horse

Das obige ist der detaillierte Inhalt vonEntwicklung eines öffentlichen WeChat-Kontos zur Implementierung einer Countdown-Funktion (reiner Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Xiaomi Redmi Note 14 Pro Plus erscheint als erstes Qualcomm Snapdragon 7s Gen 3 Smartphone mit Light Hunter 800 Kamera Xiaomi Redmi Note 14 Pro Plus erscheint als erstes Qualcomm Snapdragon 7s Gen 3 Smartphone mit Light Hunter 800 Kamera Sep 27, 2024 am 06:23 AM

Das Redmi Note 14 Pro Plus ist nun offiziell als direkter Nachfolger des letztjährigen Redmi Note 13 Pro Plus (aktuell 375 $ bei Amazon) erhältlich. Wie erwartet steht das Redmi Note 14 Pro Plus neben dem Redmi Note 14 und dem Redmi Note 14 Pro an der Spitze der Redmi Note 14-Serie. Li

Das Design des Oppo Find X8 sieht auf ersten Bildern wie eine Kreuzung zwischen Apple iPhone 16 Pro und OnePlus Open aus Das Design des Oppo Find X8 sieht auf ersten Bildern wie eine Kreuzung zwischen Apple iPhone 16 Pro und OnePlus Open aus Sep 28, 2024 am 06:04 AM

In der Vergangenheit hat Oppo seine Flaggschiff-Serie „Find X“ im späten Winter oder frühen Frühling aktualisiert, mit Ausnahme des ursprünglichen Find an dieser Stelle. H

Gate.io Trading Platform Offizielle App -Download- und Installationsadresse Gate.io Trading Platform Offizielle App -Download- und Installationsadresse Feb 13, 2025 pm 07:33 PM

In diesem Artikel werden die Schritte zum Registrieren und Herunterladen der neuesten App auf der offiziellen Website von Gate.io beschrieben. Zunächst wird der Registrierungsprozess eingeführt, einschließlich der Ausgabe der Registrierungsinformationen, der Überprüfung der E -Mail-/Mobiltelefonnummer und dem Ausfüllen der Registrierung. Zweitens wird erläutert, wie Sie die Gate.io -App auf iOS -Geräten und Android -Geräten herunterladen. Schließlich werden Sicherheits-Tipps betont, z. B. die Überprüfung der Authentizität der offiziellen Website, die Ermöglichung von zweistufiger Überprüfung und das Aufmerksamkeit von Phishing-Risiken, um die Sicherheit von Benutzerkonten und -vermögen zu gewährleisten.

ANBI App Offizieller Download V2.96.2 Neueste Version Installation Anbi Offizielle Android -Version ANBI App Offizieller Download V2.96.2 Neueste Version Installation Anbi Offizielle Android -Version Mar 04, 2025 pm 01:06 PM

Binance App Offizielle Installationsschritte: Android muss die offizielle Website besuchen, um den Download -Link zu finden. Wählen Sie die Android -Version zum Herunterladen und Installieren. Alle sollten auf die Vereinbarung über offizielle Kanäle achten.

iQOO Z9 Turbo+ debütiert als Dimensity 9300+-Smartphone mit „außergewöhnlicher' Akkulaufzeit iQOO Z9 Turbo+ debütiert als Dimensity 9300+-Smartphone mit „außergewöhnlicher' Akkulaufzeit Sep 26, 2024 am 06:20 AM

Das Z9 Turbo+ ist jetzt im chinesischen Online-Shop von Vivo für 2.199 Yuan (~313 US-Dollar) für ein Basismodell mit 12 GB RAM/256 GB internem Speicher erhältlich, während das RedmiK70 Extreme Edition mit der gleichen Konfiguration bei 2.599 Yuan (~370 US-Dollar) startete: Tatsächlich ist es so newiQ

Wie löste ich das Problem des Fehlers 'Undefined Array Key '' 'Fehler beim Aufrufen von Alipay EasysDK mithilfe von PHP? Wie löste ich das Problem des Fehlers 'Undefined Array Key '' 'Fehler beim Aufrufen von Alipay EasysDK mithilfe von PHP? Mar 31, 2025 pm 11:51 PM

Problembeschreibung beim Aufrufen von Alipay EasysDK mithilfe von PHP nach dem Ausfüllen der Parameter gemäß dem offiziellen Code wurde während des Betriebs eine Fehlermeldung gemeldet: "undefiniert ...

Laden Sie den Link des OUYI IOS -Versionsinstallationspakets herunter Laden Sie den Link des OUYI IOS -Versionsinstallationspakets herunter Feb 21, 2025 pm 07:42 PM

Ouyi ist ein weltweit führender Kryptowährungsaustausch mit seiner offiziellen iOS-App, die den Benutzern ein bequemes und sicheres Erlebnis für digitales Asset Management bietet. Benutzer können das Installationspaket Ouyi iOS -Version kostenlos über den in diesem Artikel bereitgestellten Download -Link herunterladen und die folgenden Hauptfunktionen genießen: Bequeme Handelsplattform: Benutzer können Hunderte von Kryptowährungen auf der OUYI IOS -App, einschließlich Bitcoin und Ethereum, problemlos kaufen und verkaufen und dotecoin. Sicherer und zuverlässiger Speicher: Ouyi nimmt fortschrittliche Sicherheitstechnologie ein, um den Benutzern einen sicheren und zuverlässigen digitalen Asset -Speicher zu bieten. 2FA, biometrische Authentifizierung und andere Sicherheitsmaßnahmen stellen sicher, dass Benutzervermögen nicht verletzt werden. Echtzeit-Marktdaten: Die OUYI IOS-App bietet Echtzeit-Marktdaten und -diagramme, sodass Benutzer die Verschlüsselung jederzeit erfassen können

Lenovo enthüllt neue Farboption für das 2024 Legion Y700 Gaming-Tablet Lenovo enthüllt neue Farboption für das 2024 Legion Y700 Gaming-Tablet Sep 29, 2024 am 06:05 AM

Lenovo bereitet sich darauf vor, das 2024 Legion Y700 am 29. September in China auf den Markt zu bringen. Dieses neue Android-Gaming-Tablet wird gegen das RedMagic Nova antreten, und das Unternehmen hat bereits fast alle Spezifikationen des Geräts bestätigt. Jetzt, Stunden vor dem Volltreffer

See all articles