


Entwicklung eines öffentlichen WeChat-Kontos zur Implementierung einer Countdown-Funktion (reiner Code)
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.
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:'支付超时', staticTime:0 }); return; } let minutes = parseInt(staticTime/60); let Seconds = staticTime%60; let tip = '订单已提交,请在'+minutes+'分'+Seconds+'秒内完成支付'; 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:'支付超时', 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(); //计算页面在后台的时间
listenPageShowHideHandle = () =>{
let {backGroundTime} = this.state; let start, end; 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 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('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
Verwandte Artikel:
Autorisierungseinstellungen für das öffentliche WeChat-Konto, öffentliche WeChat-Autorisierung
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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

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

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.

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.

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

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 ...

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 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
