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 相关文章推荐
JavaScript 判断判断某个对象是Object还是一个Array
Jan 28 Javascript
表单元素的submit()方法和onsubmit事件应用概述
Feb 01 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
Jun 05 Javascript
js带前后翻页的图片切换效果代码分享
Sep 08 Javascript
javaScript数组迭代方法详解
Apr 14 Javascript
js图片轮播手动切换特效
Jan 12 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
Apr 23 Javascript
vue框架搭建之axios使用教程
Jul 11 Javascript
微信小程序自定义组件实现tabs选项卡功能
Jul 14 Javascript
详解vue 图片上传功能
Apr 30 Javascript
js实现数字从零慢慢增加到指定数字示例
Nov 07 Javascript
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
一篇文章带你从零快速上手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 实例化类的一点摘记
2008/03/23 PHP
php 三维饼图的实现代码
2008/09/28 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
2015/12/18 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
2017/03/08 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
详解react native页面间传递数据的几种方式
2018/11/07 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
node.js 基于 STMP 协议和 EWS 协议发送邮件
2021/02/14 Javascript
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
Python 3 判断2个字典相同
2019/08/06 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
儿科主治医生个人求职信
2013/09/23 职场文书
上班上网检讨书
2014/01/29 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
2014年节能减排工作总结
2014/12/06 职场文书
诚信承诺书
2015/01/19 职场文书
音乐教师个人工作总结
2015/02/06 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
2019学生会干事辞职信
2019/06/27 职场文书