首頁  >  文章  >  微信小程式  >  詳解自訂PC微信掃碼登入樣式

詳解自訂PC微信掃碼登入樣式

小云云
小云云原創
2017-12-14 09:11:373476瀏覽

關於PC微信掃碼登錄,本文主要介紹了自訂PC微信掃碼登入樣式的寫法以及做了程式碼分析,希望能幫助大家。

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

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


特別大不說(預設二維碼大小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。

自訂二維碼:


#自訂PC微信掃碼登入樣式可是一個很好的技術哦,現在網站登入都需要這個功能,大家趕快試試看。

相關推薦:

php二維碼的生產與下載方法

php如何實作產生二維碼以及下載的案例

PHP實作微信PC端二維碼登入

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

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