vue 微信分享回调iOS和安卓回调出现错误的解决


Posted in Javascript onSeptember 07, 2020

产品需求:在微信内分享需要手动配置的分享地址、分享图片与内容描述,引导用户分享,并在微信分享成功回调内进行相应的操作。

首先需要在项目中引入微信jsSDk包,然后通过接口获取后台签名。

vue 微信分享回调iOS和安卓回调出现错误的解决

封装函数获取微信分享必填参数

vue 微信分享回调iOS和安卓回调出现错误的解决

其中的jsApiList中填的是需要使用的微信分享js接口的列表,参数URL默认是location.href,即分享当前页面的URL。

在需要分享的页面引入封装的函数

vue 微信分享回调iOS和安卓回调出现错误的解决

然后通过wxShare方法将URL和配置的参数传入,link参数是分享出去的链接,必须与当前页面的对应js安全域名一致;

vue 微信分享回调iOS和安卓回调出现错误的解决

...shareData就是在函数内传对象,进行解构赋值es6写法

vue 微信分享回调iOS和安卓回调出现错误的解决

但是在测试过程中发现:

1.同一套程序,andriod分享正常,ios分享报签名不正确,主要原因是微信的ios和安卓处理方式不一样,ios不会刷新当前的页面地址,使用的是history的记录地址,所以每次分享出来的链接,都是第一个进入系统页面的链接,当跳转到子页面的时候,系统就会识别打开的url和签名的url不一致导致签名不正确

2.由于单页面的hash模式会自带#号,但是分享的时候会将#号后面的参数变成无效,导致想传参数都传不过去,可以做一个页面没有#号的,然后统一带参数分享到这个页面然后再重定向到指定的vue页面

解决方法:在向后台发送请求获取微信签名的时候将传给后台的URL的#后面的参数截去,后台根据截取完的URL生成签名就能实现安卓和iOS分享回调成功的问题。

vue 微信分享回调iOS和安卓回调出现错误的解决

补充知识:使用Vue全家桶进行微信分享时出现的错误

使用vue.js进行微信H5页面开发,开发过程中先进行oAuth身份验证。后使用JSSDK,进行微信分享。分享时会出现不调用自定义分享界面的情况,但是在刷新后可以正常显示,

如下:

正常进入分享:

vue 微信分享回调iOS和安卓回调出现错误的解决

刷新后分享:

vue 微信分享回调iOS和安卓回调出现错误的解决

由于Vue和微信调试环境的问题,在经过几次痛苦的尝试后,我们发现了一个现象,那就是,如果此时点击使用Safari打开,会出现:

vue 微信分享回调iOS和安卓回调出现错误的解决

这是我们在使用oAuth认证时跳转的中间界面(从oauth回调的页面),但是在使用微信调试工具的时候,显示的url为正确页面,既为从回调页面跳转的页面。

我们知道,在使用JSSDK进行微信认证的时候,需要使用当前url调用wxcofig,那会不会有一种可能,当vue进行页面跳转的时候,微信浏览器仍然认为当前页面在原页面,所以导致传递的url和微信认为你的url不一致,所以导致认证错误。

于是在尝试给wxconfig传递url的时候,使用了跳转前中间结果的url(既,保持传递给认证的url和使用Safari打开的url一致),结果居然就行了。。。

行吧,算是微信在兼容vue的时候的一个坑,但愿大家以后能尽早跳出来。。。

以上这篇vue 微信分享回调iOS和安卓回调出现错误的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
如何用js控制css中的float的代码
Aug 16 Javascript
jQuery判断复选框是否勾选的原理及示例
May 21 Javascript
JavaScript操作XML文件之XML读取方法
Jun 09 Javascript
辨析JavaScript中的Undefined类型与null类型
May 26 Javascript
Js+Ajax,Get和Post在使用上的区别小结
Jun 08 Javascript
归纳下js面向对象的几种常见写法总结
Aug 24 Javascript
移动端脚本框架Hammer.js
Dec 15 Javascript
基于JavaScript实现类名的添加与移除
Apr 23 Javascript
jQuery实现一个简单的验证码功能
Jun 26 jQuery
详解require.js配置路径的用法和css的引入
Sep 06 Javascript
Javascript中prototype与__proto__的关系详解
Mar 11 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
Mar 13 Javascript
一篇文章带你从零快速上手Rollup
Sep 07 #Javascript
基于vue hash模式微信分享#号的解决
Sep 07 #Javascript
在项目vue中使用echarts的操作步骤
Sep 07 #Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
Sep 07 #Javascript
Vue.js原理分析之nextTick实现详解
Sep 07 #Javascript
小程序实现可拖动的悬浮按钮
Sep 07 #Javascript
vue 修改 data 数据问题并实时显示操作
Sep 07 #Javascript
You might like
php学习笔记之面向对象编程
2012/12/29 PHP
php实现telnet功能示例
2014/04/08 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
JS中类或对象的定义说明
2014/03/10 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
[47:31]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.12
2020/12/16 DOTA
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
Python实现动态循环输出文字功能
2020/05/07 Python
英国航空官网:British Airways
2016/09/11 全球购物
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
如何开发一个JQuery插件
2016/07/28 面试题
会计师事务所审计实习自我鉴定
2013/09/20 职场文书
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
大一新生军训时的自我评价分享
2013/12/05 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
小学生春游活动方案
2014/08/20 职场文书
材料物理专业求职信
2014/09/01 职场文书
五五普法心得体会
2014/09/04 职场文书
行政助理岗位职责
2015/02/10 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
2015医院个人工作总结范文
2015/05/21 职场文书
Python pyecharts绘制条形图详解
2022/04/02 Python
使用scrapy实现增量式爬取方式
2022/06/21 Python