详解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 相关文章推荐
js Form.elements[i]的使用实例
Nov 13 Javascript
thinkphp实现无限分类(使用递归)
Dec 19 Javascript
vue自定义指令实现v-tap插件
Nov 03 Javascript
原生js实现无缝轮播图效果
Jan 11 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
Mar 21 jQuery
vue-cli2.x项目优化之引入本地静态库文件的方法
Jun 19 Javascript
jQuery动态操作表单示例【基于table表格】
Dec 06 jQuery
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 jQuery
使用Node.js写一个代码生成器的方法步骤
May 10 Javascript
简单了解vue 插值表达式Mustache
Jul 22 Javascript
JavaScript架构搭建前端监控如何采集异常数据
Jun 25 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
php调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
php 利用array_slice函数获取随机数组或前几条数据
2015/09/30 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
jquery实现网页查找功能示例分享
2014/02/12 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
Bootstrap页面缩小变形的快速解决办法
2017/02/03 Javascript
angularjs实现上拉加载和下拉刷新数据功能
2017/06/12 Javascript
关于RxJS Subject的学习笔记
2018/12/05 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
[00:29]2019完美世界全国高校联赛(秋季赛)总决赛海口落幕
2019/12/10 DOTA
在CMD命令行中运行python脚本的方法
2018/05/12 Python
numpy.where() 用法详解
2019/05/27 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
学生自我鉴定范文
2013/10/04 职场文书
《三峡》教学反思
2014/03/01 职场文书
法人任命书范本
2014/06/04 职场文书
汽车维修求职信
2014/06/15 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
自我检讨书范文
2015/01/28 职场文书
小学生2015教师节演讲稿
2015/03/19 职场文书
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电