资讯专栏INFORMATION COLUMN

自定义微信登录扫码样式解决办法

meteor199 / 753人阅读

摘要:微信扫码登录近期做一个端微信扫码登录的需求,微信扫码有两种方式,一种是新开一个二维码页面,另一种是内嵌入产品网页。幸运的是,微信留了一个给我们自定义样式的机会,在之前实例化一个二维码的时候,实例对象中属性,允许设置样式。

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。
自定义二维码:

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/112827.html

相关文章

  • 定义微信登录扫码样式解决办法

    摘要:微信扫码登录近期做一个端微信扫码登录的需求,微信扫码有两种方式,一种是新开一个二维码页面,另一种是内嵌入产品网页。幸运的是,微信留了一个给我们自定义样式的机会,在之前实例化一个二维码的时候,实例对象中属性,允许设置样式。 PC微信扫码登录 近期做一个PC端微信扫码登录的需求,微信扫码有两种方式,一种是新开一个二维码页面,另一种是内嵌入产品网页。本次以内嵌二维码为例,具体怎样在页面中显示...

    yexiaobai 评论0 收藏0
  • 定义微信扫码登录样式

    摘要:最近公司端网站登录改版,新增加微信扫码登录。设置好后发现,微信自带的样式,码太大了,位置也不对,需要调整。再看文档微信文档就是这个属性上方的,就可以引用咱们自己写的文件。 最近公司PC端网站登录改版,新增加微信扫码登录。文档微信扫码登录文档。设置好后发现,微信自带的样式,码太大了,位置也不对,需要调整。 showImg(https://segmentfault.com/img/bVXj...

    davidac 评论0 收藏0
  • 定义微信扫码登录样式

    摘要:最近公司端网站登录改版,新增加微信扫码登录。设置好后发现,微信自带的样式,码太大了,位置也不对,需要调整。再看文档微信文档就是这个属性上方的,就可以引用咱们自己写的文件。 最近公司PC端网站登录改版,新增加微信扫码登录。文档微信扫码登录文档。设置好后发现,微信自带的样式,码太大了,位置也不对,需要调整。 showImg(https://segmentfault.com/img/bVXj...

    XiNGRZ 评论0 收藏0
  • 通过前端怎样在vue中进行微信网页授权登录

    摘要:通过前端怎样在中进行微信网页授权登录背景公司目前上一个新项目,需要使用微信授权登录,和后端商量了一下,决定使用微信登录的第一种方法进行授权登录,就是后台给一个接口,由前端直接执行,跳转到一个新页面,新页面中生成一个二维码来进行授权登录。 通过前端怎样在vue中进行微信网页授权登录 背景: 公司目前上一个新项目,需要使用微信授权登录,和后端商量了一下,决定使用微信登录的第一种方法进行授权...

    laoLiueizo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<