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 相关文章推荐
动态刷新 dorado树的js代码
Jun 12 Javascript
js实现每日自动换一张图片的方法
May 04 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
Sep 27 Javascript
label+input实现按钮开关切换效果的实例
Aug 16 Javascript
Vue中父子组件通讯之todolist组件功能开发
May 21 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
Aug 31 Javascript
vue中过滤器filter的讲解
Jan 21 Javascript
Vue通过配置WebSocket并实现群聊功能
Dec 31 Javascript
vue实现购物车的小练习
Dec 21 Vue.js
浅谈 JavaScript 沙箱Sandbox
Nov 02 Javascript
详解JS数组方法
Nov 20 Javascript
vue3语法糖内的defineProps及defineEmits
Apr 14 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
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
nodejs批量修改文件编码格式
2015/01/22 NodeJs
神奇!js+CSS+DIV实现文字颜色渐变效果
2016/03/16 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
浅谈ES6新增的数组方法和对象
2017/08/08 Javascript
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
JS实现随机生成10个手机号的方法示例
2018/12/07 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
用Python实现协同过滤的教程
2015/04/08 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
python中dict使用方法详解
2019/07/17 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
python访问hdfs的操作
2020/06/06 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
标准化管理实施方案
2014/02/25 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
python实现的web监控系统
2021/04/27 Python
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python
浅谈Python数学建模之线性规划
2021/06/23 Python
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL