微信小程序、支付寶小程序、H5根據字符串生成相同的(de)二維碼
發表時(shí)間:2021-1-5
發布人(rén):融晨科技
浏覽次數:50
前言:
建議後端合成二維碼,直接返回圖片給前端(包括二維碼帶logo),如果後端沒有實現這(zhè)個(gè),隻返回字符串給前端,那麽就(jiù)需要(yào / yāo)前端來(lái)用插件合成二維碼了(le/liǎo)。
前端合成二維碼,就(jiù)要(yào / yāo)用到(dào)插件。不(bù)少H5的(de)二維碼插件都用到(dào)DOM的(de),小程序中沒有DOM這(zhè)個(gè)概念,所以(yǐ)h5的(de)好多插件并不(bù)能直接用到(dào)小程序上(shàng),也(yě)就(jiù)出(chū)現了(le/liǎo)h5插件到(dào)小程序的(de)移植。
如果項目有多個(gè)平台,那麽就(jiù)建議使用已經移植到(dào)小程序上(shàng)的(de)插件,這(zhè)樣能保證不(bù)同平台生成的(de)二維碼是(shì)相同的(de),不(bù)然就(jiù)會出(chū)現不(bù)同平台生成券碼不(bù)一緻的(de)問題(雖說(shuō)不(bù)影響券碼的(de)識别,但是(shì)總歸不(bù)太好)。
解決方案:
H5使用QRCode插件,小程序使用QRcode移植的(de)weapp-qrcode-base64插件,這(zhè)個(gè)本來(lái)針對微信小程序做的(de)移植,經驗證,支付寶小程序也(yě)可以(yǐ)用。使用這(zhè)兩個(gè)插件,生成是(shì)二維碼就(jiù)是(shì)一緻的(de)了(le/liǎo)。
這(zhè)個(gè)插件是(shì)不(bù)基于(yú)canvas的(de),具體用法這(zhè)裏就(jiù)不(bù)說(shuō)了(le/liǎo),開源項目裏邊都有詳細說(shuō)明。
後記:
這(zhè)個(gè)插件還是(shì)挺不(bù)錯的(de),可以(yǐ)設置二維碼的(de)容錯率以(yǐ)及碼的(de)顔色,不(bù)足之(zhī)處就(jiù)是(shì)不(bù)能合成logo,需要(yào / yāo)前端後期将logo布局到(dào)合成的(de)二維碼上(shàng)方。
能夠直接合成logo的(de)插件也(yě)嘗試過,但是(shì)在(zài)開發及跨平台移植過程中出(chū)現不(bù)少問題,最後也(yě)就(jiù)嘗試出(chū)來(lái)上(shàng)邊這(zhè)種方式,實現了(le/liǎo)一直的(de)二維碼合成。
有興趣的(de)同學可以(yǐ)研究下可以(yǐ)直接合成logo進去的(de)插件。