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 相关文章推荐
一个判断email合法性的函数[非正则]
Dec 09 Javascript
再说AutoComplete自动补全之实现原理
Nov 05 Javascript
使用js写的一个简易的投票
Nov 27 Javascript
单击和双击事件的冲突处理示例代码
Apr 03 Javascript
Jquery跳到页面指定位置的方法
May 12 Javascript
DOM基础教程之事件对象
Jan 20 Javascript
简单纯js实现点击切换TAB标签实例
Aug 23 Javascript
jQuery Validate插件自定义验证规则的方法
Dec 27 Javascript
JS验证输入的是否是数字及保留几位小数问题
May 09 Javascript
JavaScript原型链与继承操作实例总结
Aug 24 Javascript
JavaScript交换变量的常用方法小结【4种方法】
May 07 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
Oct 18 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
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
为指定元素增加样式的js代码
2009/12/09 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
ExtJS自定义主题(theme)样式详解
2013/11/18 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
2015/08/10 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
vue.js的安装方法
2017/05/12 Javascript
jQuery模拟实现天猫购物车动画效果实例代码
2017/05/25 jQuery
十大 Node.js 的 Web 框架(快速提升工作效率)
2017/06/30 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
2017/08/04 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
Vue 自定义指令功能完整实例
2019/09/17 Javascript
Vue实现push数组并删除的例子
2019/11/01 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
[07:27]DOTA2卡尔工作室 英雄介绍水晶室女篇
2013/06/21 DOTA
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python3 处理JSON的实例详解
2017/10/29 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
Django 拆分model和view的实现方法
2019/08/16 Python
Tensorflow设置显存自适应,显存比例的操作
2020/02/03 Python
Python控制台实现交互式环境执行
2020/06/09 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
Carmen Sol官网:购买果冻鞋、手袋和配件
2021/01/01 全球购物
《在山的那边》教学反思
2014/02/23 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
本科毕业论文导师评语
2014/12/31 职场文书
关于迟到的检讨书
2015/05/06 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android