На прошлой неделе я получил запрос, который заключается в следующем: пользователь сканирует QR -код и будет генерировать ссылку. Ссылка отправит запрос на бэкэнд и вернет адрес загрузки APK. Пользователь может скачать этот APK, нажав кнопку загрузки. Затем возникла проблема. После тестирования я обнаружил, что, сканируя открытую страницу с WeChat, нажав кнопку загрузки, я не мог загрузить APK. После этого Байду сказал, что встроенный браузер WeChat заблокировал ссылку для загрузки, а позже общался со стороной спроса. Требование было изменено, если пользователь открыл его со встроенным браузером WeChat, пользователю было предложено изменить браузер, чтобы открыть страницу, в противном случае APK не может быть загружен. Итак, как вы определяете, использует ли пользователь браузер WeChat?
Мы знаем, что JS может получить соответствующую информацию о браузере через window.navigator.useragent, например: mozilla/5.0 (Windows NT 5.1) AppleWebkit/537.36 (khtml, как гекко) Chrome/33.0.1750.154 Safari/537.36. Затем мы также можем получить соответствующую информацию о встроенном браузере WeChat с помощью этого метода: Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1, как Mac OS X) AppleWebkit/537.51.2 (KHTML, как Gecko) Mobile/11D201 Micromessenger/5.3. Основываясь на Micromessenger ключевого слова, определите, является ли это встроенным браузером для WeChat. Функция суждения заключается в следующем:
Кода -копия выглядит следующим образом:
функция isWexin () {
var ua = window.navigator.useragent.tolowercase ();
if (ua.match (/micromessenger/i) == 'micromessenger') {
вернуть истину;
}еще{
вернуть ложь;
}
}
Демонстрация:
Кода -копия выглядит следующим образом:
<! Doctype html>
<html lang = "en">
<голова>
<meta charset = "utf-8"/>
<title> Определите, является ли это встроенным браузером для WeChat </title>
</head>
<тело>
<h1> Если вы откроете его в браузере WeChat, вы можете увидеть следующий текст </h1>
<p> </p>
</body>
</html>
<script type = "text/javascript">
window.onload = function () {
if (isWexin ()) {
var p = document.getElementsbytagname ('p');
p [0] .innerhtml = window.navigator.useragent;
}
}
функция isWexin () {
var ua = window.navigator.useragent.tolowercase ();
if (ua.match (/micromessenger/i) == 'micromessenger') {
вернуть истину;
}еще{
вернуть ложь;
}
}
</script>
Примечание. Вы можете разместить вышеуказанную демонстрацию на сервере и генерировать QR -код и сканировать его.