Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)


Posted in Javascript onJanuary 19, 2020

这几天做个了项。就是微信扫描二维码的然后进入公众号网页巴拉巴拉的,然后就很顺利的遇到了在安卓端扫码的时候,顺利的一塌糊涂,然后到了苹果端的时候,就只能出现一个保存图片,然后就写一下记录一下这问题的解决方法。

问题

机型:iphone 7p

这里的二维码是一张图片,微信返回的图片,具体下图

Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法) 

然后是正常情况下。当我们开始扫码的时,应该是这个样子

Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法) 

这个是正常的,但是在苹果端的时候就懵了,下面的菜单就只有一个保存图片。那么如何解决呢,请看下面。

解决方案

解决方案其实有两种。

使用 qrcodeJs 就不做介绍了,官网应有尽有,也就是将二维码的链接填写进绘制的 canvas 里面,然后生成二维码扫描。

附上github地址: qrcodejs

  • 使用a标签进行跳转
  • 使用 a 标签进行跳转这个应该没什人有疑问怎么做了,也就是几行代码的事情
let a = document.createElement("a");
a.href = `${window.location.origin}/invite?qrcode=${qrcode}`;
a.click();

这个在项目内的时候呢,确实是可以解决问题的,但如果从外部带参数进入网页,例如有人分享了一个二维码给我,然后让我去扫码的时候呢? 他就不行了。然后经过我几次测试之后,我发现了问题

// 第一次跳转的时候,也就是进入页面的时候,url是这样的
http://dududev.huikaoedu.com/invite?qrcode=https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=xxxx

然后这个时候呢,他是无法扫码的,只能保存到本地,但是我又想起之前在百度看见一个很奇葩的解决方式,刷新页面,说是刷新页面就可以了,然后在我坚持不懈的刷新了两以后,我发现我的url变成了下面这样子

http://dududev.huikaoedu.com/invite?qrcode=https%3A%2F%2Fmp.weixin.qq.com%2Fcgi-bin%2Fshowqrcode%3Fticket%xxx

没错,他进行了编码!!!!!!!所以最终的方案就是,如果你发现使用了 a 标签没用,那么就要进行 encodeURIComponent() 编码,具体就是这样了

let a = document.createElement("a");
const qrcode = encodeURIComponent(this.$route.query.qrcode);
a.href = `${window.location.origin}/invite?qrcode=${qrcode}`;
a.click();

总结

以上所述是小编给大家介绍的V的ue 微信端扫描二维码苹果端只能保存图片解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
比较全的JS checkbox全选、取消全选、删除功能代码
Dec 19 Javascript
jquery ajax执行后台方法
Mar 18 Javascript
jquery弹出关闭遮罩层实例
Aug 06 Javascript
jQuery中replaceAll()方法用法实例
Jan 16 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
Dec 29 Javascript
js获取隐藏元素宽高的实现方法
May 19 Javascript
jQuery获取复选框选中的当前行的某个字段的值
Sep 15 jQuery
vue小图标favicon不显示的解决方案
Sep 19 Javascript
Vue2.0生命周期的理解
Aug 20 Javascript
微信小程序按钮点击跳转页面详解
May 06 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
Aug 05 Javascript
JavaScript交换变量常用4种方法解析
Sep 02 Javascript
JS基础之逻辑结构与循环操作示例
Jan 19 #Javascript
js实现图片上传到服务器和回显
Jan 19 #Javascript
ES6如何用一句代码实现函数的柯里化
Jan 18 #Javascript
ES6 Object.assign()的用法及其使用
Jan 18 #Javascript
vue项目中监听手机物理返回键的实现
Jan 18 #Javascript
vue组件内部引入外部js文件的方法
Jan 18 #Javascript
Node.js实现批量下载图片简单操作示例
Jan 18 #Javascript
You might like
ip签名探针
2006/10/09 PHP
社区(php&&mysql)二
2006/10/09 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
php实现paypal 授权登录
2015/05/28 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
PHP微信支付结果通知与回调策略分析
2019/01/10 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
js实现漫天星星效果
2017/01/19 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
JS将unicode码转中文方法
2017/05/08 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
ZK中使用JS读取客户端txt文件内容问题
2019/11/07 Javascript
详解python的argpare和click模块小结
2019/03/31 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
安装python依赖包psycopg2来调用postgresql的操作
2021/01/01 Python
美国照明、家居装饰和家具购物网站:Bellacor
2017/09/20 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
Bed Bath & Beyond加拿大官网:购买床上用品、浴巾、厨房电器等
2019/10/04 全球购物
会议邀请函范文
2014/01/09 职场文书
护理不良事件检讨书
2014/02/06 职场文书
运动会入场解说词
2014/02/07 职场文书
PHP判断是否是json字符串
2021/04/01 PHP