Letzte Woche habe ich eine Anfrage erhalten, die wie folgt ist: Ein Benutzer scannt den QR -Code und generiert einen Link. Der Link sendet eine Anfrage an das Backend und gibt die Download -Adresse einer APK zurück. Der Benutzer kann diesen APK herunterladen, indem Sie auf die Schaltfläche Download klicken. Dann trat ein Problem auf. Nach dem Testen stellte ich fest, dass ich durch das Scannen der geöffneten Seite mit WeChat auf die Schaltfläche Download die APK nicht herunterladen konnte. Danach sagte Baidu, dass der eingebaute Browser von WeChat den Download-Link blockierte und später mit der Nachfrageseite kommunizierte. Die Anforderung wurde geändert, wenn der Benutzer es mit dem integrierten Browser von WeChat geöffnet hatte. Der Benutzer wurde aufgefordert, den Browser zu ändern, um die Seite zu öffnen, andernfalls konnte der APK nicht heruntergeladen werden. Wie bestimmen Sie also, ob der Benutzer einen WeChat -Browser verwendet?
Wir wissen, dass JS relevante Informationen über den Browser über window.navigator.useragent erhalten kann, wie z. Anschließend können wir auch relevante Informationen über den integrierten Browser von WeChat über diese Methode erhalten: Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 wie Mac OS X) AppleWebkit/537.51.2 (KHTML, wie Gecko) Mobile/11d201 Micromessger/5.3. Stellen Sie basierend auf dem Keyword Micromessenger fest, ob es sich um einen integrierten Browser für WeChat handelt. Die Urteilsfunktion lautet wie folgt:
Die Codekopie lautet wie folgt:
Funktion isWeixin () {
var ua = window.navigator.useragent.tolowerCase ();
if (ua.match (/micromessenger/i) == 'micromessenger') {
zurückkehren;
}anders{
false zurückgeben;
}
}
Demo:
Die Codekopie lautet wie folgt:
<! DocType html>
<html lang = "en">
<kopf>
<meta charset = "utf-8"/>
<titels> Bestimmen Sie, ob es sich um einen integrierten Browser für WeChat </title> handelt
</head>
<body>
<h1> Wenn Sie es im WeChat -Browser öffnen, können Sie den folgenden Text </h1> sehen
<p> </p>
</body>
</html>
<script type = "text/javaScript">
window.onload = function () {
if (isWeixin ()) {
var p = document.getElementsByTagName ('P');
P [0] .innerhtml = Fenster.Navigator.Useragent;
}
}
Funktion isWeixin () {
var ua = window.navigator.useragent.tolowerCase ();
if (ua.match (/micromessenger/i) == 'micromessenger') {
zurückkehren;
}anders{
false zurückgeben;
}
}
</script>
Hinweis: Sie können die obige Demo auf dem Server platzieren, einen QR -Code erstellen und scannen.