自定義微信登錄掃碼樣式解決辦法


PC微信掃碼登錄

近期做一個PC端微信掃碼登錄的需求,微信掃碼有兩種方式,一種是新開一個二維碼頁面,另一種是內嵌入產品網頁。本次以內嵌二維碼為例,具體怎樣在頁面中顯示一個登陸二維碼,文檔說的很清楚,就不贅述了,

文檔地址:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN

解決自定義微信二維碼樣式問題

當一切准備妥當之后,網頁上的二維碼初始默認是這個樣子。

 

特別大不說(默認二維碼大小280x280),還有微信登錄的title,下方也有掃碼登錄的提示。 
幸運的是,微信留了一個api給我們自定義樣式的機會,在之前實例化一個二維碼的時候,實例對象中href屬性,允許設置樣式。

步驟1:在頁面中先引入如下JS文件(支持https):

http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js

步驟2:在需要使用微信登錄的地方實例以下JS對象:

 var obj = new WxLogin({
 self_redirect:true,
 id:"", 
 appid: "", 
 scope: "", 
 redirect_uri: "",
  state: "",
 style: "",
 href: ""
 });

在附上參數說明:

不幸的是,在href中傳入樣式文件的地址,會報錯。貌似微信為了安全考慮,只允許訪問https的資源。於是現在采用第二種解決辦法傳 base64 。

將需要修改的樣式進行base64轉碼  在放進到 href 中

例如官方自己優化的(如需在進一步修改需要自己配置):

.impowerBox .qrcode {width: 200px;}
.impowerBox .title {display: none;}
.impowerBox .info {width: 200px;}
.status_icon {display: none}
.impowerBox .status {text-align: center;} 

進行轉碼后再加入前綴:data:text/css;base64, 將轉碼后的Base64拼接到  data:text/css;base64,   這個后面,在放入到href中

額外需要注意的是   state 這個參數  需要填寫隨機碼!

var obj = new WxLogin({
                            self_redirect:false,
                            id:"", 
                            appid: "", 
                            scope: "", 
                            redirect_uri: "",
                            state: "Math.ceil(Math.random()*1000)",
                            style: "black",
                            href: "data:text/css;base64,LmltcG93ZXJCb3ggLnFyY29kZSB7d2lkdGg6IDIwMHB4O30KLmltcG93ZXJCb3ggLnRpdGxlIHtkaXNwbGF5OiBub25lO30KLmltcG93ZXJCb3ggLmluZm8ge3dpZHRoOiAyMTBweDt9Ci5pbXBvd2VyQm94IC5pY29uMzhfbXNnLnN1Y2Mge2Rpc3BsYXk6IG5vbmV9Ci5pbXBvd2VyQm94IC5pY29uMzhfbXNnLndhcm4ge2Rpc3BsYXk6IG5vbmV9Ci5pbXBvd2VyQm94IC5zdGF0dXMge3RleHQtYWxpZ246IGNlbnRlcjt9Cg=="
                        });

 

 結果展示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM