js||C# 判断用户是否使用微信浏览器 并据此显示真实内容或者二维码

js判断用户是否使用微信浏览器

if (navigator.userAgent.match(/(MicroMessenger)/i)) {
alert(‘你真正使用微信访问‘);
}
else
{
alert("未使用微信访问");
}

C# 判断用户是否使用微信浏览器 并据此显示真实内容或者二维码
using System.Web.Mvc;// Request Response引用的名称空间
string userAgent = Request.UserAgent;
if (userAgent.ToLower().Contains("micromessenger"))//判断是否是微信内置浏览器
{
Response.Write("欢迎您在微信中访问我。");
}
else
{
Response.Write("请在微信中访问本页。");
}

平时我们看一些网页的时候会发现这样的功能:有的页面只能在微信里访问,如果在电脑*问就只显示当前地址的二维码。这个用C#怎么实现呢?我们结合代码来看看。

首先,我们需要先判断用户使用的是什么浏览器,这需要用到 Request.UserAgent 属性,通过捕捉微信浏览器和普通浏览器的UserAgent会发现它们的区别,下面是几款常用浏览器的UserAgent:

微信浏览器:Mozilla/5.0(Linux;U;Android 4.4.2;zh-cn;2013022 Build/HM2013022)AppleWebKit/533.1(KHTML,like Gecko)Version/4.0MQQBrowser/5.4 TBS/025438 Mobile Safari/533.1 MicroMessenger/6.2.0.54_r1169949.561 NetType/WIFI Language/zh_CN

火狐:Mozilla/5.0 (Windows NT 6.3; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0

IE11:Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko

谷歌浏览器:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36

 

对比上面4个浏览器的UserAgent可以发现,微信浏览器的UserAgent最关键的就是包含上面标红色的MicroMessenger ,所以我们可以据此来判断用户是否使用了微信浏览器:

        string userAgent = Request.UserAgent;
        if (userAgent.ToLower().Contains("micromessenger"))
        {
            Response.Write("欢迎您在微信中访问我。");
        }
        else
        {
            Response.Write("请在微信中访问本页。");
        }


到此我们实现了判断用户是否使用了微信浏览器,下面开始第二步:在非微信浏览器访问时生成二维码。

 

 

C#生成二维码有一个非常好用的插件:ThoughtWorks.QRCode 。它的使用非常简单,我们从官网上下载ThoughtWorks.QRCode.dll之后,引用到我们的项目里,然后在页面中引入ThoughtWorks.QRCode.Codec 命名空间,接下来就可以操作生成二维码了:

 

/// <summary>
    /// 生成二维码
    /// </summary>
    private void CreateQRCode()
    {
        string enCodeString = Request.Url.ToString();
        QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
        qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)
        qrCodeEncoder.QRCodeScale = 10;//大小(值越大生成的二维码图片像素越高)
        qrCodeEncoder.QRCodeVersion = 0;//版本(注意:设置为0主要是防止编码的字符串太长时发生错误)
        qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//错误效验、错误更正(有4个等级)

        string filename = Request.Url.ToString().Replace("/", "").Replace("\\", "").Replace(".", "").Replace(":", "").Replace("?", "").Replace("&", "") + ".jpg";
        string path = Server.MapPath("~/qrcode/");
        if (!File.Exists(path + filename))
        {
            Bitmap bt = qrCodeEncoder.Encode(enCodeString, Encoding.UTF8);
            if (!Directory.Exists(path))
                Directory.CreateDirectory(path);
            bt.Save(path + filename);
        }
        string html = "<img src=‘qrcode/" + filename + "‘ width=‘330px‘ height=‘330px‘/>";
        html += "<h3>该内容仅限在微信浏览器下阅读!请用微信扫描,打开此页面!</h3>";
        divQRCode.InnerHtml = html;
    }

页面上有一个div来显示二维码提示。

    <div id="viewQRCode" runat="server" style="text-align:center;">        
    </div>


修改上面判断微信浏览器的代码:

 

 

        string userAgent = Request.UserAgent;
        if (userAgent.ToLower().Contains("micromessenger"))
        {            <pre name="code" class="csharp">            Response.Write("欢迎您在微信中访问我。");
        }
        else
        {
            CreateQRCode();
        }

 

js||C# 判断用户是否使用微信浏览器 并据此显示真实内容或者二维码

上一篇:微信公众号开发如何调试


下一篇:Ubuntu20.04 安装和卸载MySQL8