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 相关文章推荐
JavaScript toFixed() 方法
Apr 15 Javascript
基于jQuery的一个扩展form序列化到json对象
Dec 09 Javascript
js获取当前日期代码适用于网页头部
Jun 27 Javascript
控制文字内容的显示与隐藏示例
Jun 11 Javascript
Window.Open如何在同一个标签页打开
Jun 20 Javascript
javascript删除一个html元素节点的方法
Dec 20 Javascript
jquery.mousewheel实现整屏翻屏效果
Aug 30 Javascript
易操作的jQuery表单提示插件
Dec 01 Javascript
JS实现类似百叶窗下拉菜单效果
Dec 30 Javascript
拖动时防止选中
Feb 03 Javascript
vue2.0自定义指令示例代码详解
Apr 25 Javascript
微信小程序关键字变色实现代码实例
Dec 13 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
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
用js实现放大镜效果
2020/10/28 Javascript
Python 如何访问外围作用域中的变量
2016/09/11 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
HTML5未来发展趋势
2016/02/01 HTML / CSS
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
室内设计实习自我鉴定
2013/09/25 职场文书
移动通信专业自荐信范文
2013/11/12 职场文书
关于幼儿的自我评价
2013/12/18 职场文书
《木笛》教学反思
2014/03/01 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
2015年员工试用期工作总结
2015/05/28 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书
Django展示可视化图表的多种方式
2021/04/08 Python
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL