首頁  >  文章  >  web前端  >  如何自訂PC微信掃碼登入

如何自訂PC微信掃碼登入

亚连
亚连原創
2018-06-21 11:20:413739瀏覽

這篇文章主要介紹了自訂PC微信掃碼登入樣式的寫法以及做了程式碼分析,需要的朋友學習下吧。

PC微信掃碼登入

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

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

當一切準備妥當之後,網頁上的二維碼初始預設是這個樣子。

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

var obj = new WxLogin({
      id:"login_container", 
      appid: "", 
      scope: "", 
      redirect_uri: "",
      state: "",
      style: "",
      href: "../qrcode.css"//就是这个属性
      });

不幸的是,在href中傳入樣式檔案的位址,會報錯。貌似微信為了安全考慮,只允許存取https的資源。於是現在採用第二種解決方法data-url。

透過存取data-url解決樣式問題

寫一個nodejs,腳本將剛才的css資源轉換為data-url。具體程式碼實作為:

var fs = require('fs');
// function to encode file data to base64 encoded string
function base64_encode(file) {
 // read binary data
 var bitmap = fs.readFileSync(file);
 // convert binary data to base64 encoded string
 return 'data:text/css;base64,'+new Buffer(bitmap).toString('base64');
}
console.log(base64_encode('./qrcode.css'))

執行node腳本,複製列印出來的data-url,然後賦值給剛才的href。

var obj = new WxLogin({
      id:"login_container", 
      appid: "", 
      scope: "", 
      redirect_uri: "",
      state: "",
      style: "",
           href:"data:text/css;base64,LmltcG93ZXJCb3ggLnFyY29kZSB7d2lkdGg6IDIwMHB4O30NCi5pbXBvd2VyQm94IC50aXRsZSB7ZGlzcGxheTogbm9uZTt9DQouaW1wb3dlckJveCAuaW5mbyB7d2lkdGg6IDIwMHB4O30NCi5zdGF0dXNfaWNvbiB7ZGlzcGxheTpub25lf
Q0KLmltcG93ZXJCb3ggLnN0YXR1cyB7dGV4dC1hbGlnbjogY2VudGVyO30="//data-url
      });

注意這裡的MIME類型,一定要回傳text/css。

自訂二維碼:


上面是我整理給大家的,希望今後會對大家有幫助。

相關文章:

在VUE中如何實作陣列更新功能

Vue專案最佳化需要注意哪些?

在vuejs中使用模組化的方式開發

以上是如何自訂PC微信掃碼登入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn