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代码
Dec 28 Javascript
目前流行的JavaScript库的介绍及对比
Sep 29 Javascript
javascript父子页面通讯实例详解
Jul 17 Javascript
js检测iframe是否加载完成的方法
Nov 26 Javascript
js格式化输入框内金额、银行卡号
Feb 01 Javascript
angular2路由切换改变页面title的示例代码
Aug 23 Javascript
Vue的elementUI实现自定义主题方法
Feb 23 Javascript
ng-repeat指令在迭代对象时的去重方法
Oct 02 Javascript
vue项目前端埋点的实现
Mar 06 Javascript
使用webpack4编译并压缩ES6代码的方法示例
Apr 24 Javascript
prettier自动格式化去换行的实现代码
Aug 25 Javascript
vue引入Excel表格插件的方法
Apr 28 Vue.js
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
几个php应用技巧
2008/03/27 PHP
php中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
destoon之一键登录设置
2014/06/21 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
2011/05/25 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
使用Node.js配合Nginx实现高负载网络
2015/06/28 Javascript
js判断输入字符串是否为空、空格、null的方法总结
2016/06/14 Javascript
JS验证不重复验证码
2017/02/10 Javascript
Vue.Js中的$watch()方法总结
2017/03/23 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
JavaScript运动框架 链式运动到完美运动(五)
2017/05/18 Javascript
js实现简单选项卡功能
2020/03/23 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
小程序如何自主实现拦截器的示例代码
2019/11/04 Javascript
Python读取网页内容的方法
2015/07/30 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
linux面试题参考答案(10)
2016/10/26 面试题
公关关系专员的自我评价分享
2013/11/20 职场文书
公务员总结性个人自我评价
2013/12/05 职场文书
心理健康活动总结
2014/04/30 职场文书
户籍证明模板
2014/09/28 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书