Na semana passada, recebi uma solicitação, que é a seguinte: um usuário digitaliza o código QR e irá gerar um link. O link enviará uma solicitação para o back -end e retornará o endereço de download de um apk. O usuário pode baixar este APK clicando no botão de download. Então ocorreu um problema. Após o teste, descobri que, digitalizando a página aberta com o WeChat, clicando no botão de download, não consegui baixar o APK. Depois disso, Baidu disse que o navegador embutido do WeChat bloqueou o link de download e se comunicou com o lado da demanda mais tarde. O requisito foi alterado para se o usuário o abrir com o navegador interno do WeChat, o usuário foi solicitado a alterar o navegador a abrir a página, caso contrário, o APK não poderá ser baixado. Então, como você determina se o usuário está usando um navegador WeChat?
Sabemos que o JS pode obter informações relevantes sobre o navegador através do window.navigator.UserAgent, como: Mozilla/5.0 (Windows NT 5.1) Applewebkit/537.36 (KHTML, como Gecko) Chrome/33.0.1750.154 Safari/537.36. Também podemos obter informações relevantes sobre o navegador interno do WeChat através deste método: Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 como Mac OS X) Applewebkit/537.51.2 (Khtml, Gecko) Mobile/11d201 Micromessesenger/5.3. Com base na palavra-chave Micromessenger, determine se é um navegador embutido para o WeChat. A função de julgamento é a seguinte:
A cópia do código é a seguinte:
função isweixin () {
var ua = window.navigator.userAgent.tolowercase ();
if (ua.match (/microMessenger/i) == 'microMessenger') {
retornar true;
}outro{
retornar falso;
}
}
Demonstração:
A cópia do código é a seguinte:
<! Doctype html>
<html lang = "en">
<head>
<meta charset = "utf-8"/>
<title> Determine se é um navegador embutido para WeChat </ititle>
</head>
<Body>
<H1> Se você abrir no navegador WeChat, poderá ver o seguinte texto </h1>
<p> </p>
</body>
</html>
<script type = "text/javascript">
window.onload = function () {
if (isweixin ()) {
var p = document.getElementsByTagName ('P');
p [0] .innerhtml = window.navigator.UserAgent;
}
}
função isweixin () {
var ua = window.navigator.userAgent.tolowercase ();
if (ua.match (/microMessenger/i) == 'microMessenger') {
retornar true;
}outro{
retornar falso;
}
}
</script>
Nota: Você pode colocar a demonstração acima no servidor e gerar um código QR e digitalizar -o.