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几个不错的函数 $$()
Oct 09 Javascript
javascript不同类型数据之间的运算的转换方法
Feb 13 Javascript
js/jquery获取文本框输入焦点的方法
Mar 04 Javascript
详解Javascript动态操作CSS
Dec 08 Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 Javascript
JavaScript编写简单的计算器
Nov 25 Javascript
JS加载iFrame出现空白问题的解决办法
May 13 Javascript
Webpack执行命令参数详解
Jun 17 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
Aug 16 Javascript
详解Vue-cli代理解决跨域问题
Sep 27 Javascript
Vue.js特性Scoped Slots的浅析
Feb 20 Javascript
JQuery事件委托原理与用法实例分析
May 13 jQuery
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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
ecshop实现smtp发送邮件
2015/02/03 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
jquery获取tr中控件值并操作tr实现思路
2013/03/27 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
js实现下一页页码效果
2017/03/07 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
详解如何在vue项目中使用lodop打印插件
2018/09/27 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
解决Vue调用springboot接口403跨域问题
2019/09/02 Javascript
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
python tkinter组件摆放方式详解
2019/09/16 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
应届大学生自荐信格式
2013/09/21 职场文书
草船借箭教学反思
2014/02/03 职场文书
运动会跳远加油稿
2014/02/20 职场文书
幼儿园开学寄语
2014/04/03 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
2015年新教师工作总结
2015/04/28 职场文书
安全教育观后感
2015/06/17 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis