في الأسبوع الماضي ، تلقيت طلبًا ، وهو على النحو التالي: يقوم المستخدم بفحص رمز الاستجابة السريعة وسيقوم بإنشاء رابط. سيرسل الرابط طلبًا إلى الواجهة الخلفية وإرجاع عنوان تنزيل 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.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. وظيفة الحكم على النحو التالي:
نسخة الكود كما يلي:
وظيفة 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>
ملاحظة: يمكنك وضع العرض التوضيحي أعلاه على الخادم وإنشاء رمز الاستجابة السريعة ومسحه.