自定義PC微信掃碼登錄樣式寫法
PC微信掃碼登錄
近期做一個(gè)PC端微信掃碼登錄的需求,微信掃碼有兩種方式,一種是新開一個(gè)二維碼頁面,另一種是內(nèi)嵌入產(chǎn)品網(wǎng)頁。本次以內(nèi)嵌二維碼為例,具體怎樣在頁面中顯示一個(gè)登陸二維碼,文檔說的很清楚,就不贅述了,文檔地址:https://open.weixin.qq.com/cg...
解決自定義微信二維碼樣式問題
當(dāng)一切準(zhǔn)備妥當(dāng)之后,網(wǎng)頁上的二維碼初始默認(rèn)是這個(gè)樣子。
特別大不說(默認(rèn)二維碼大小280x280),還有微信登錄的title,下方也有掃碼登錄的提示。
幸運(yùn)的是,微信留了一個(gè)api給我們自定義樣式的機(jī)會(huì),在之前實(shí)例化一個(gè)二維碼的時(shí)候,實(shí)例對(duì)象中href屬性,允許設(shè)置樣式。
var obj = new WxLogin({ id:"login_container", appid: "", scope: "", redirect_uri: "", state: "", style: "", href: "../qrcode.css"http://就是這個(gè)屬性 });
不幸的是,在href中傳入樣式文件的地址,會(huì)報(bào)錯(cuò)。貌似微信為了安全考慮,只允許訪問https的資源。于是現(xiàn)在采用第二種解決辦法data-url。
通過訪問data-url解決樣式問題
寫一個(gè)nodejs,腳本將剛才的css資源轉(zhuǎn)換為data-url。具體代碼實(shí)現(xiàn)為:
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'))
運(yùn)行node腳本,復(fù)制打印出來的data-url,然后賦值給剛才的href。
var obj = new WxLogin({ id:"login_container", appid: "", scope: "", redirect_uri: "", state: "", style: "", href:"data:text/css;base64,LmltcG93ZXJCb3ggLnFyY29kZSB7d2lkdGg6IDIwMHB4O30NCi5pbXBvd2VyQm94IC50aXRsZSB7ZGlzcGxheTogbm9uZTt9DQouaW1wb3dlckJveCAuaW5mbyB7d2lkdGg6IDIwMHB4O30NCi5zdGF0dXNfaWNvbiB7ZGlzcGxheTpub25lf Q0KLmltcG93ZXJCb3ggLnN0YXR1cyB7dGV4dC1hbGlnbjogY2VudGVyO30="http://data-url });
注意這里的MIME類型,一定要返回text/css。
自定義二維碼:
相關(guān)文章
javascript中不提供sleep功能如何實(shí)現(xiàn)這個(gè)功能
javascript中不提供sleep功能,而我們時(shí)長會(huì)用到這個(gè)功能,下面與大家分享個(gè)不錯(cuò)的解決方法,而且在不同的機(jī)器上的執(zhí)行速度是一致的2014-05-05詳解JS如何實(shí)現(xiàn)文字溢出時(shí)用省略號(hào)...顯示
這篇文章主要為大家詳細(xì)介紹了JavaScript如何實(shí)現(xiàn)當(dāng)文本內(nèi)容過長時(shí),中間顯示省略號(hào)...,兩端正常展示,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02js實(shí)現(xiàn)盒子移動(dòng)動(dòng)畫效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)盒子移動(dòng)動(dòng)畫效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08js 動(dòng)態(tài)添加標(biāo)簽(新增一行,其實(shí)很簡單,就是幾個(gè)函數(shù)的應(yīng)用)
把所有代碼拷下另存為一個(gè)html文件,在瀏覽器中打開,點(diǎn)擊“新增一行”按鈕就可以,以下是對(duì)js函數(shù)的解釋2009-03-03javascript簡寫常用的12個(gè)技巧(可以大大減少你的js代碼量)
這篇文章主要跟大家分享了javascript簡寫常用的12個(gè)技巧,通過這12個(gè)技巧可以大大減少你的js代碼量,看懂一種是入門,全懂就是大神,你能知道幾個(gè)呢?需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。2017-08-08Javascript中使用A標(biāo)簽獲取當(dāng)前目錄的絕對(duì)路徑方法
這篇文章主要介紹了Javascript中使用A標(biāo)簽獲取當(dāng)前目錄的絕對(duì)路徑方法,本文講解的方法比較特別,需要的朋友可以參考下2015-03-03在JavaScript中遭遇級(jí)聯(lián)表達(dá)式陷阱
在JavaScript中遭遇級(jí)聯(lián)表達(dá)式陷阱...2007-03-03js實(shí)現(xiàn)表單項(xiàng)的全選、反選及刪除操作示例
這篇文章主要介紹了js實(shí)現(xiàn)表單項(xiàng)的全選、反選及刪除操作,結(jié)合實(shí)例形式分析了基于dedecms后臺(tái)使用js實(shí)現(xiàn)表單項(xiàng)的全選、反選及刪除相關(guān)操作技巧,需要的朋友可以參考下2020-06-06js將日期格式轉(zhuǎn)換為YYYY-MM-DD HH:MM:SS
這篇文章主要介紹了js將日期格式轉(zhuǎn)換為YYYY-MM-DD HH:MM:SS,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09