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页面的表格数据的增加与分页的实现
Dec 10 Javascript
JavaScript中的继承方式详解
Feb 11 Javascript
分享自己用JS做的扫雷小游戏
Feb 17 Javascript
JS中如何比较两个Json对象是否相等实例代码
Jul 13 Javascript
Vue.js快速入门实例教程
Oct 15 Javascript
jquery append与appendTo方法比较
May 24 jQuery
详解js跨域请求的两种方式,支持post请求
May 05 Javascript
jQuery UI实现动画效果代码分享
Aug 19 jQuery
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
通过实例讲解JS如何防抖动
Jun 15 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
Sep 12 Javascript
openLayer4实现动态改变标注图标
Aug 17 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
ftp类(myftp.php)
2006/10/09 PHP
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
浅析JS原型继承与类的继承
2016/04/07 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
2016/06/15 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
canvas知识总结
2017/01/25 Javascript
Node.JS文件系统解析实例详解
2017/05/15 Javascript
原生JS实现N级菜单的代码
2017/05/21 Javascript
利用vscode编写vue的简单配置详解
2017/06/17 Javascript
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
解决vue中监听input只能输入数字及英文或者其他情况的问题
2018/08/30 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
Python实现的自定义多线程多进程类示例
2018/03/23 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
python实现梯度法 python最速下降法
2020/03/24 Python
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
送给他或她的礼物:FUN.com
2018/08/17 全球购物
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
在校硕士自我鉴定
2014/01/23 职场文书
生物科学专业职业规划书范文
2014/02/11 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
python处理json数据文件
2022/04/11 Python
Mysql中常用的join连接方式
2022/05/11 MySQL