详解Vue开发微信H5微信分享签名失败问题解决方案


Posted in Javascript onAugust 09, 2018

关于Vue中路由使用history模式,开发微信H5页面分享时在安卓上签名有效成功,但是在IOS设备上一直报错签名失效问题

问题描述:在Vue开发过程中,路由使用History模式下,在使用微信分享时,在微信开发者工具上一切正常。在安卓上一切正常。 但是!!!在IOS上反复报签名错误。

以下是真机测试截图,划掉黑线的是我个人IOS设备分享出来一直是服务号,接着下面分享出来自定义内容是安卓分享正常,话不多说上图!!!!

详解Vue开发微信H5微信分享签名失败问题解决方案

我的代码:

详解Vue开发微信H5微信分享签名失败问题解决方案

详解Vue开发微信H5微信分享签名失败问题解决方案

需求描述:需要从首页进入活动详情页,然后在详情页分享详情页面内容。所以需要带参数传参,通常vue传参通过params,query,字符串拼接这三种方式进行跳转传参

问题分析:因为苹果分享会是调取签名失败是因为:苹果在微信中浏览器机制和安卓不同,有IOS缓存问题,和IOS对单页面的优化问题,通俗点说安卓进行页面跳转分享时会刷新当前的url,而苹果不会,苹果是通过历史记录进来的,不会刷新url所以会导致签名失败(这里解释的可能不够详细,可以去百度)。

因为需求只需要分享当前页面的时候有自定义内容,其他页面分享出去是公众号都无所谓,主要是活动,所以就用了如下解决办法!!!!

因为vue的history在IOS的微信分享时不会刷新,但是我们又要做自定义分享。我在网上也看了很多,比如什么beforerouteEnter的路由判断,或者写在Vue.prototype.Wxshare()的原型链中等,看起来都太麻烦,不够简单粗暴,但是这些方法可以好像可以做到判断每一个分享页面的自定义内容。而我只需要当前分享特定的单一页面,那么我们在A页面跳转B页面(需要分享的页面)就不用vue的history的push来跳转传参, 我们用!我们用!我们用!window.location.href="...." rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" 来跳转传参,重要的事情说三遍!!!!

用:window.location.href="...." !!! window.location.href="...."!!! window.location.href="...."!!!下面是代码!!!

详解Vue开发微信H5微信分享签名失败问题解决方案

注释掉的部分是一开始我用params来传参的,这样就会出现我上面提到到在IOS上SPA页面不会刷新 url的问题,但是原生的window.location.href可以解决这个问题!!!这样在子页面我们在create生命周期去截取url中的字符串把需要的参数截取下来,赋值到data中去一样可以使用. 下面是子页面接收数据截取字符串(这里的截取字符串是直接复制找的,赶时间,你可以自己写,一次性截取3 个字符串)!!!

详解Vue开发微信H5微信分享签名失败问题解决方案

详解Vue开发微信H5微信分享签名失败问题解决方案

就这样我们的分享IOS需求就实现了,不需要在去改动我上面的微信分享配置的代码!!但是此方法个人想的只适用于分享特定页面,如果用户需要分享每一个页面不同的自定义内容,可以去网上找使用其他的路由守卫判断,或者用Hash模式来开发 (Hash模式我也不确定是否真的可以,有兴趣的可以尝试,尝试后欢迎留言!!)

以下是真机测试成功!

详解Vue开发微信H5微信分享签名失败问题解决方案 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
求得div 下 img的src地址的js代码
Feb 28 Javascript
JavaScript DOM 添加事件
Feb 14 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
Nov 21 Javascript
深入理解javascript动态插入技术
Nov 12 Javascript
jQuery实现锚点scoll效果实例分析
Mar 10 Javascript
原生js结合html5制作简易的双色子游戏
Mar 30 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
Aug 24 Javascript
Vue-cli3简单使用(图文步骤)
Apr 30 Javascript
Vue.extend 编程式插入组件的实现
Nov 18 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
Aug 28 Javascript
nuxt 路由、过渡特效、中间件的实现代码
Nov 06 Javascript
Vue $attrs & inheritAttr实现button禁用效果案例
Dec 07 Vue.js
JQuery Ajax动态加载Table数据的实例讲解
Aug 09 #jQuery
详解在React中跨组件分发状态的三种方法
Aug 09 #Javascript
使用jquery DataTable和ajax向页面显示数据列表的方法
Aug 09 #jQuery
React中如何引入Angular组件详解
Aug 09 #Javascript
jQuery 实现批量提交表格多行数据的方法
Aug 09 #jQuery
详解js的视频和音频采集
Aug 09 #Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
Aug 08 #Javascript
You might like
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php防注入及开发安全详细解析
2013/08/09 PHP
帝国cms目录结构分享
2015/07/06 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
List the UTC Time on a Computer
2007/06/11 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
JavaScript中this详解
2015/09/01 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
python登陆asp网站页面的实现代码
2015/01/14 Python
Python中subprocess的简单使用示例
2015/07/28 Python
在Pandas中给多层索引降级的方法
2018/11/16 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
python实现在一个画布上画多个子图
2020/01/19 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
html5 Canvas画图教程(9)—canvas中画出矩形和圆形
2013/01/09 HTML / CSS
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
异步传递消息系统的作用
2016/05/01 面试题
编辑个人求职信范文
2013/09/21 职场文书
预备党员政审材料
2014/02/04 职场文书
市政工程技术专业自荐书
2014/07/06 职场文书
机关职员工作检讨书
2014/10/23 职场文书
优秀校长事迹材料
2014/12/24 职场文书
小学生节水倡议书
2015/04/29 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
PHP命令行与定时任务
2021/04/01 PHP
Python 数据可视化之Matplotlib详解
2021/11/02 Python