详解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 相关文章推荐
jquery中dom操作和事件的实例学习 下拉框应用
Dec 01 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
Dec 25 Javascript
Array栈方法和队列方法的特点说明
Jan 24 Javascript
浅谈javascript对象模型和function对象
Dec 26 Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
Feb 28 Javascript
js复制内容到剪贴板代码,js复制代码的简单实例
Oct 27 Javascript
Bootstrap 轮播(Carousel)插件
Dec 26 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
Oct 17 Javascript
Validform验证时可以为空否则按照指定格式验证
Oct 20 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
Nov 28 Javascript
关于vue路由缓存清除在main.js中的设置
Nov 06 Javascript
JavaScript逻辑运算符相关总结
Sep 04 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 Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
php简单读取.vcf格式文件的方法示例
2017/09/02 PHP
php微信开发之图片回复功能
2018/06/14 PHP
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
AngularJS实现动态添加Option的方法
2017/05/17 Javascript
javascript 缓冲运动框架的实现
2017/09/29 Javascript
使用proxy实现一个更优雅的vue【推荐】
2018/06/19 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
javascript实现计算器功能
2020/03/30 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
python实现ip代理池功能示例
2019/07/05 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
英国著名书店:Foyles
2018/12/01 全球购物
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
Clarks鞋澳大利亚官方网站:Clarks Australia
2019/12/25 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
如何写出高性能的JSP和Servlet
2013/01/22 面试题
new修饰符是起什么作用
2015/06/28 面试题
前台接待员岗位职责
2014/01/02 职场文书
饭店工作计划书
2014/01/10 职场文书
优秀求职信范文分享
2014/01/26 职场文书
优秀教师个人材料
2014/12/15 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
Pandas搭配lambda组合使用详解
2022/01/22 Python
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技