這篇文章主要介紹了自訂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。
自訂二維碼:
上面是我整理給大家的,希望今後會對大家有幫助。
相關文章:
以上是如何自訂PC微信掃碼登入的詳細內容。更多資訊請關注PHP中文網其他相關文章!