지난주에 요청을 받았습니다. 이는 다음과 같습니다. 사용자는 QR 코드를 스캔하고 링크를 생성합니다. 링크는 요청을 백엔드로 보내고 APK의 다운로드 주소를 반환합니다. 사용자는 다운로드 버튼을 클릭 하여이 APK를 다운로드 할 수 있습니다. 그런 다음 문제가 발생했습니다. 테스트 후 WeChat으로 오픈 페이지를 스캔하여 다운로드 버튼을 클릭하면 APK를 다운로드 할 수 없었습니다. 그 후 Baidu는 WeChat의 내장 브라우저가 다운로드 링크를 차단하고 나중에 수요 측면과 통신했다고 말했다. 요구 사항은 WeChat의 내장 브라우저를 사용하여 사용자가 열린 경우로 변경되었습니다. 사용자는 페이지를 열도록 브라우저를 변경하라는 메시지를 표시했습니다. 그렇지 않으면 APK를 다운로드 할 수 없었습니다. 그렇다면 사용자가 WeChat 브라우저를 사용하고 있는지 어떻게 결정합니까?
우리는 JS가 Window.navigator.useragent를 통해 브라우저에 대한 관련 정보를 얻을 수 있음을 알고 있습니다. : Mozilla/5.0 (Windows NT 5.1) Applewebkit/537.36 (Gecko Like Gecko) 크롬/33.0.1750.154 Safari/537.36. 그런 다음이 방법을 통해 WeChat의 내장 브라우저에 대한 관련 정보를 얻을 수 있습니다 : Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 Mac OS X와 같은 CPU iPhone OS 7_1_1) AppleWebkit/537.51.2 (Gecko와 같은 KHTML) mobile/11d201 Micromessenger/5.3. 키워드 Micromessenger를 기반으로 WeChat의 내장 브라우저인지 확인하십시오. 판단 기능은 다음과 같습니다.
코드 사본은 다음과 같습니다.
함수 isweixin () {
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>
<body>
<H1> WeChat 브라우저에서 열면 다음 텍스트를 볼 수 있습니다 </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;
}
}
함수 isweixin () {
var ua = window.navigator.useragent.tolowercase ();
if (ua.match (/micromessenger/i) == 'micromessenger') {
진실을 반환하십시오.
}또 다른{
거짓을 반환합니다.
}
}
</스크립트>
참고 : 위의 데모를 서버에 배치하고 QR 코드를 생성하여 스캔 할 수 있습니다.