程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#判斷用戶是否使用微信浏覽器,並據此來顯示真實內容或二維碼

C#判斷用戶是否使用微信浏覽器,並據此來顯示真實內容或二維碼

編輯:C#入門知識

C#判斷用戶是否使用微信浏覽器,並據此來顯示真實內容或二維碼


平時我們看一些網頁的時候會發現這樣的功能:有的頁面只能在微信裡訪問,如果在電腦上訪問就只顯示當前地址的二維碼。這個用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 命名空間,接下來就可以操作生成二維碼了:

 

/// 
    /// 生成二維碼
    /// 
    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 = 
; html +=

該內容僅限在微信浏覽器下閱讀!請用微信掃描,打開此頁面!

; divQRCode.InnerHtml = html; }頁面上有一個div來顯示二維碼提示。
    
 
修改上面判斷微信浏覽器的代碼:

 

 

        string userAgent = Request.UserAgent;
        if (userAgent.ToLower().Contains(micromessenger))
        {            
Response.Write(歡迎您在微信中訪問我。); } else { CreateQRCode(); }

 


到這裡就大功告成了,我們來看下在普通浏覽器和微信浏覽器上浏覽這個頁面的不同效果:

 

在電腦上訪問此頁面

在普通浏覽器上訪問的效果

微信訪問的效果

用微信掃描訪問的效果

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved