La semana pasada, recibí una solicitud, que es la siguiente: un usuario escanea el código QR y generará un enlace. El enlace enviará una solicitud al backend y devolverá la dirección de descarga de un APK. El usuario puede descargar este APK haciendo clic en el botón Descargar. Entonces ocurrió un problema. Después de la prueba, descubrí que al escanear la página Abra con WeChat, haciendo clic en el botón Descargar, no pude descargar el APK. Después de eso, Baidu dijo que el navegador incorporado de WeChat bloqueó el enlace de descarga y se comunicó con el lado de la demanda más tarde. El requisito se cambió a si el usuario lo abrió con el navegador incorporado de WeChat, se le solicitó al usuario que cambiara el navegador para abrir la página, de lo contrario el APK no se pudo descargar. Entonces, ¿cómo se determina si el usuario está usando un navegador WeChat?
Sabemos que JS puede obtener información relevante sobre el navegador a través de 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. Luego, también podemos obtener información relevante sobre el navegador incorporado de WeChat a través de este método: Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 como Mac OS X) AppleWebkit/537.51.2 (KHTML, como Gecko) Mobile/11D201 Micromessenger/5.3. Según la palabra clave Micromessenger, determine si se trata de un navegador incorporado para WeChat. La función del juicio es la siguiente:
La copia del código es la siguiente:
función isweixin () {
var ua = window.navigator.useragent.tolowercase ();
if (ua.match (/micromessenger/i) == 'Micromessenger') {
devolver verdadero;
}demás{
devolver falso;
}
}
manifestación:
La copia del código es la siguiente:
<! Doctype html>
<html lang = "en">
<Evista>
<meta charset = "utf-8"/>
<title> Determine si es un navegador incorporado para WeChat </title>
</ablo>
<Body>
<h1> Si lo abre en WeChat Browser, puede ver el siguiente 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;
}
}
función isweixin () {
var ua = window.navigator.useragent.tolowercase ();
if (ua.match (/micromessenger/i) == 'Micromessenger') {
devolver verdadero;
}demás{
devolver falso;
}
}
</script>
Nota: Puede colocar la demostración anterior en el servidor y generar un código QR y escanearlo.