La semaine dernière, j'ai reçu une demande, qui est la suivante: un utilisateur analyse le code QR et générera un lien. Le lien enverra une demande au backend et renverra l'adresse de téléchargement d'un APK. L'utilisateur peut télécharger cet APK en cliquant sur le bouton de téléchargement. Alors un problème s'est produit. Après les tests, j'ai découvert qu'en numérisant la page ouverte avec WeChat, en cliquant sur le bouton de téléchargement, je n'ai pas pu télécharger l'APK. Après cela, Baidu a déclaré que le navigateur intégré de WeChat avait bloqué le lien de téléchargement et communiqué avec le côté de la demande plus tard. L'exigence a été modifiée si l'utilisateur l'ouvrait avec le navigateur intégré de WeChat, l'utilisateur a été invité à modifier le navigateur pour ouvrir la page, sinon l'APK n'a pas pu être téléchargé. Alors, comment déterminez-vous si l'utilisateur utilise un navigateur WeChat?
Nous savons que JS peut obtenir des informations pertinentes sur le navigateur via Window.Navigator.UserAgent, telles que: Mozilla / 5.0 (Windows NT 5.1) Applewebkit / 537.36 (KHTML, comme Gecko) Chrome / 33.0.1750.154 Safari / 537.36. Ensuite, nous pouvons également obtenir des informations pertinentes sur le navigateur intégré de WeChat via cette méthode: Mozilla / 5.0 (iPhone; CPU iPhone OS 7_1_1 Like Mac OS X) Applewebkit / 537.51.2 (KHTML, comme Gecko) Mobile / 11d201 Micromessenger / 5.3. En fonction du mot-clé Micromessenger, déterminez s'il s'agit d'un navigateur intégré pour WeChat. La fonction de jugement est la suivante:
La copie de code est la suivante:
fonction isweixin () {
var ua = window.navigator.useragent.tolowercase ();
if (ua.match (/ micromessenger / i) == 'Micromessenger') {
Retour Vrai;
}autre{
retourne false;
}
}
démo:
La copie de code est la suivante:
<! Doctype html>
<html lang = "en">
<adal>
<meta charset = "utf-8" />
<Title> Déterminez s'il s'agit d'un navigateur intégré pour WeChat </Title>
</ head>
<body>
<h1> Si vous l'ouvrez dans WeChat Browser, vous pouvez voir le texte suivant </H1>
<p> </p>
</docy>
</html>
<script type = "text / javascript">
window.onload = function () {
if (isweixin ()) {
var p = document.getElementsByTagName ('p');
p [0] .InnerHtml = window.navigator.UserAgent;
}
}
fonction isweixin () {
var ua = window.navigator.useragent.tolowercase ();
if (ua.match (/ micromessenger / i) == 'Micromessenger') {
Retour Vrai;
}autre{
retourne false;
}
}
</cript>
Remarque: Vous pouvez placer la démo ci-dessus sur le serveur et générer un code QR et le scanner.