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 相关文章推荐
jquery 插件开发备注
Aug 27 Javascript
jquery调用asp.net 页面后台的实现代码
Apr 27 Javascript
多个checkbox被选中时如何判断是否有自己想要的
Sep 22 Javascript
利用Node.js编写跨平台的spawn语句详解
Feb 12 Javascript
Angular企业级开发——MVC之控制器详解
Feb 20 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
May 30 Javascript
使用socket.io制做简易WEB聊天室
Jan 02 Javascript
JS中call()和apply()的功能及用法实例分析
Jun 28 Javascript
vue3.0中使用postcss-pxtorem的具体方法
Nov 20 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 Javascript
Vue中使用wangeditor富文本编辑的问题
Feb 07 Vue.js
JavaScript parseInt0.0000005打印5原理解析
Jul 23 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
备份mysql数据库的php代码(一个表一个文件)
2010/05/28 PHP
php实现的验证码文件类实例
2015/06/18 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
2015/11/04 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
bootstrap IE8 兼容性处理
2017/03/22 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
react-router实现按需加载
2017/05/09 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
Vue 实现双向绑定的四种方法
2018/03/16 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
python版大富翁源代码分享
2018/11/19 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
病媒生物防治方案
2014/05/13 职场文书
毕业生个人总结
2015/02/28 职场文书
城南旧事读书笔记
2015/06/29 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书