先週、私は次のようなリクエストを受け取りました。ユーザーがQRコードをスキャンし、リンクを生成します。リンクはバックエンドにリクエストを送信し、APKのダウンロードアドレスを返します。ユーザーは、ダウンロードボタンをクリックしてこのAPKをダウンロードできます。その後、問題が発生しました。テスト後、WeChatでオープンページをスキャンし、ダウンロードボタンをクリックすると、APKをダウンロードできないことがわかりました。その後、Baiduは、WeChatの組み込みブラウザがダウンロードリンクをブロックし、後で需要側と通信したと述べました。要件は、ユーザーがWeChatの組み込みブラウザで開いた場合に変更されました。ユーザーは、ブラウザを変更してページを開くように求められました。そうしないと、APKをダウンロードできませんでした。では、ユーザーがWeChatブラウザを使用しているかどうかをどのように判断しますか?
JSは、window.navigator.useragentを介してブラウザに関する関連情報を取得できることを知っています。また、この方法を使用して、WeChatの組み込みブラウザに関する関連情報を取得することもできます。Mozilla/5.0(iPhone; CPU iPhone OS 7_1_1 Like Mac OS X)AppleWebkit/537.51.2(geckoのようなKHTML)モバイル/11D201マイクロメス/5.3。キーワードマイクロメッガンガーに基づいて、WeChatの組み込みブラウザかどうかを判断します。判断機能は次のとおりです。
コードコピーは次のとおりです。
関数isweixin(){
var ua = window.navigator.useragent.tolowercase();
if(ua.match(/micromessenger/i)== 'microMessenger'){
trueを返します。
}それ以外{
falseを返します。
}
}
デモ:
コードコピーは次のとおりです。
<!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'){
trueを返します。
}それ以外{
falseを返します。
}
}
</script>
注:上記のデモをサーバーに配置してQRコードを生成してスキャンできます。