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兼容标准的表格变色效果
Jun 28 Javascript
JavaScript单元测试ABC
Apr 12 Javascript
javascript打开word文档的方法
Apr 16 Javascript
javascript 数组操作详解
Jan 29 Javascript
jQuery实现炫酷的鼠标轨迹特效
Feb 01 Javascript
使用JavaScript实现旋转的彩圈特效
Jun 23 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
Sep 21 Javascript
JS组件Bootstrap实现下拉菜单效果代码
Apr 26 Javascript
特殊日期提示功能的实现方法
Jun 16 Javascript
了解javascript中let和var及const关键字的区别
May 24 Javascript
Element-Ui组件 NavMenu 导航菜单的具体使用
Oct 24 Javascript
Webpack的Loader和Plugin的区别
Nov 09 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文件注释模板设置方法
2013/09/29 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
WordPress中创建用户角色的相关PHP函数使用详解
2015/12/25 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
js 获取服务器控件值的代码
2010/03/05 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
js的for in循环和java里foreach循环的区别分析
2015/01/28 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
[36:19]2018DOTA2亚洲邀请赛 小组赛 A组加赛 Newbee vs LGD
2018/04/03 DOTA
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
Python ZipFile模块详解
2013/11/01 Python
通过C++学习Python
2015/01/20 Python
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
护士岗前培训自我评鉴
2014/02/28 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
大课间体育活动方案
2014/03/12 职场文书
家教广告词
2014/03/19 职场文书
青年文明号申报材料
2014/12/23 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
检讨书格式范文
2015/05/07 职场文书
养成教育主题班会
2015/08/13 职场文书
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android