เมื่อสัปดาห์ที่แล้วฉันได้รับคำขอซึ่งมีดังนี้: ผู้ใช้สแกนรหัส QR และจะสร้างลิงก์ ลิงค์จะส่งคำขอไปยังแบ็กเอนด์และส่งคืนที่อยู่ดาวน์โหลดของ APK ผู้ใช้สามารถดาวน์โหลด APK นี้ได้โดยคลิกที่ปุ่มดาวน์โหลด จากนั้นมีปัญหาเกิดขึ้น หลังจากการทดสอบฉันพบว่าโดยการสแกนหน้าเปิดด้วย WeChat คลิกปุ่มดาวน์โหลดฉันไม่สามารถดาวน์โหลด APK ได้ หลังจากนั้น Baidu กล่าวว่าเบราว์เซอร์ในตัวของ WeChat บล็อกลิงก์ดาวน์โหลดและสื่อสารกับด้านอุปสงค์ในภายหลัง ข้อกำหนดถูกเปลี่ยนเป็นหากผู้ใช้เปิดด้วยเบราว์เซอร์ในตัวของ WeChat ผู้ใช้จะได้รับแจ้งให้เปลี่ยนเบราว์เซอร์เพื่อเปิดหน้าไม่เช่นนั้น APK ไม่สามารถดาวน์โหลดได้ ดังนั้นคุณจะพิจารณาได้อย่างไรว่าผู้ใช้ใช้เบราว์เซอร์ WeChat ได้อย่างไร?
เรารู้ว่า JS สามารถรับข้อมูลที่เกี่ยวข้องเกี่ยวกับเบราว์เซอร์ผ่าน Window.navigator.useragent เช่น: Mozilla/5.0 (Windows NT 5.1) Applewebkit/537.36 (Khtml เช่น Gecko) Chrome/33.0.1750.1544447.36 จากนั้นเรายังสามารถรับข้อมูลที่เกี่ยวข้องเกี่ยวกับเบราว์เซอร์ในตัวของ WeChat ด้วยวิธีนี้: Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 เช่น Mac OS X) Applewebkit/537.51.2 (khtml เช่น Gecko) มือถือ/11d201 micromessenger/5.3 ขึ้นอยู่กับ Micromessenger คำหลักให้พิจารณาว่าเป็นเบราว์เซอร์ในตัวสำหรับ WeChat หรือไม่ ฟังก์ชั่นการตัดสินมีดังนี้:
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น isweixin () {
var ua = window.navigator.useragent.toLowerCase ();
if (ua.match (/micromessenger/i) == 'micromessenger') {
กลับมาจริง;
}อื่น{
กลับเท็จ;
-
-
การสาธิต:
การคัดลอกรหัสมีดังนี้:
<! doctype html>
<html lang = "en">
<head>
<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') {
กลับมาจริง;
}อื่น{
กลับเท็จ;
-
-
</script>
หมายเหตุ: คุณสามารถวางตัวอย่างข้างต้นบนเซิร์ฟเวอร์และสร้างรหัส QR และสแกน