自定义PC微信扫码登录样式写法


Posted in Javascript onDecember 12, 2017

PC微信扫码登录

近期做一个PC端微信扫码登录的需求,微信扫码有两种方式,一种是新开一个二维码页面,另一种是内嵌入产品网页。本次以内嵌二维码为例,具体怎样在页面中显示一个登陆二维码,文档说的很清楚,就不赘述了,文档地址:https://open.weixin.qq.com/cg...

解决自定义微信二维码样式问题

当一切准备妥当之后,网页上的二维码初始默认是这个样子。

自定义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。

自定义PC微信扫码登录样式写法

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微信扫码登录样式写法

Javascript 相关文章推荐
基于jQuery架构javascript基础体系
Jan 01 Javascript
IE6、IE7中获取Button元素的值的bug说明
Aug 28 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
Nov 08 Javascript
js中的前绑定和后绑定详解
Aug 01 Javascript
JS实现向表格行添加新单元格的方法
Mar 30 Javascript
JavaScript获取当前网页标题(title)的方法
Apr 03 Javascript
基于JavaScript实现简单的随机抽奖小程序
Jan 05 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
May 12 Javascript
node.js中express-session配置项详解
May 31 Javascript
基于vue-element组件实现音乐播放器功能
May 06 Javascript
基于element-ui的rules中正则表达式
Sep 04 Javascript
JS复杂判断的更优雅写法代码详解
Nov 07 Javascript
基于模板引擎Jade的应用(详解)
Dec 12 #Javascript
jquery获取transform里的值实现方法
Dec 12 #jQuery
JS排序算法之希尔排序与快速排序实现方法
Dec 12 #Javascript
将Sublime Text 3 添加到右键中的简单方法
Dec 12 #Javascript
详解vue渲染函数render的使用
Dec 12 #Javascript
谈谈vue中mixin的一点理解
Dec 12 #Javascript
Vue集成Iframe页面的方法示例
Dec 12 #Javascript
You might like
Php注入点构造代码
2008/06/14 PHP
PHP三层结构(上) 简单三层结构
2010/07/04 PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
js 提交和设置表单的值
2008/12/19 Javascript
js 输出内容到新窗口具体实现代码
2013/05/31 Javascript
javascript自然分类法算法实现代码
2013/10/11 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
Nodejs sublime text 3安装与配置
2014/06/19 NodeJs
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
js中获取 table节点各tr及td的内容简单实例
2016/10/14 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
小程序实现多个选项卡切换
2020/06/19 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
[56:46]Liquid vs IG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python logging类库使用例子
2014/11/22 Python
python中执行shell的两种方法总结
2017/01/10 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
简单了解django orm中介模型
2019/07/30 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
Python sql注入 过滤字符串的非法字符实例
2020/04/03 Python
化工专业个人的求职信范文
2013/11/28 职场文书
医院护士的求职信范文
2013/12/26 职场文书
大学生家政服务项目创业计划书
2014/01/30 职场文书
小溪流的歌教学反思
2014/02/13 职场文书
天网工程实施方案
2014/03/26 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
2014年计生工作总结
2014/11/21 职场文书
联村联户简报
2015/07/21 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
Python实现列表拼接和去重的三种方式
2021/07/02 Python
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android