详解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 相关文章推荐
JavaScript的类型转换(字符转数字 数字转字符)
Aug 30 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
Jun 20 Javascript
javascript的解析执行顺序在各个浏览器中的不同
Mar 17 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
May 11 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
Sep 28 Javascript
js实现鼠标点击文本框自动选中内容的方法
Aug 20 Javascript
学习JavaScript设计模式之中介者模式
Jan 14 Javascript
Javascript类型转换的规则实例解析
Feb 23 Javascript
js鼠标经过tab选项卡时实现切换延迟
Mar 24 Javascript
websocket+node.js实现实时聊天系统问题咨询
May 17 Javascript
Vue单文件组件基础模板小结
Aug 10 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
Sep 10 Javascript
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
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
PHP之生成GIF动画的实现方法
2013/06/07 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
ThinkPHP3.1新特性之查询条件预处理简介
2014/06/19 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
JavaScript和CSS通过expression实现Table居中显示
2013/06/28 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
浅谈Angular路由守卫
2017/08/26 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
js html实现计算器功能
2018/11/13 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
Python with的用法
2014/08/22 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
python2.x实现人民币转大写人民币
2018/06/20 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
解决更改AUTH_USER_MODEL后出现的问题
2020/05/14 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
Python学习笔记之装饰器
2020/08/06 Python
详解CSS3的box-shadow属性制作边框阴影效果的方法
2016/05/10 HTML / CSS
应届生财务会计求职信
2013/11/05 职场文书
给酒店员工的表扬信
2014/01/11 职场文书
幼儿园教学随笔感言
2014/02/23 职场文书
缓刑期间思想汇报范文
2014/10/10 职场文书
销售业务员岗位职责
2015/02/13 职场文书
心得体会格式及范文
2016/01/25 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书