背景:教育项目,整体依赖于微信环境,涉及到微信分享、微信二次分享

问题:vue使用history模式在iso微信下分享设置出错(签名认证错误、分享设置失败)

问题发现路径

1、按照微信公众号官方文档设置微信分享,ios真机测试,第一个进入页面分享设置成功。

2、使用vue router跳转到第二个页面后在分享时,分享设置失败,刷新页面后分享正常。

3、打开微信jssdkdebug模式

4、发现在router跳转后的第二个页面,签名失败(invalid signature)

解决路径:

google后发现,是ios微信对history操作的问题。

在vue-router模式为history的情况下, 由于IOS微信浏览器在验证微信jssdk签名时,需要的URL是第一次进入该应用时的URL, 并不是当前页面的URL, 所以这里需要针对IOS微信浏览器作特殊处理.

修改代码,获取第一次进入页面的uil作为ios签名的url,具体参考(VUE解决微信签名,SPA微信invalid signature问题,完美处理

通过设置后在本地测试正常(本地域名拦截,代理转发)。于是高高兴兴提测试环境。但是很快心情就不好了。测试环境测试不通过。

继续填坑。。。

有个好的现象(也许是不好的现象),第二个页面的签名通过了,但是分享出去的内容还是错误。分享的标题是公众号的标题,链接是首次进入页面的链接。

为此不停的google google google。但是没有结果。。。。

与同事讨论后,感觉可能是以公共组件的方式调起原因。于是有静下心来更换调用方式,替换成公共方法(为避免大量返工,选择两个页面进行实验)。

将公共组件改成公共js方法。在两个页面中调用方法设置微信分享。本地测试通过,但我已经不相信本地测试了,直接提交测试环境,使用5s测试通过。还是不放心,又使用6、6p、7、7p测试。过了、过了、真的过了~~~~

虽然不知道,这两种调用方式区别在哪里,但是爽啊。。。

参考链接: https://www.jianshu.com/p/a1a31f9da272

https://github.com/vuejs/vue-router/issues/481

https://zhuanlan.zhihu.com/p/31887792

https://www.jianshu.com/p/a1a31f9da272

https://segmentfault.com/a/1190000014455713

vue history模式 ios微信分享 踩过的坑的更多相关文章

  1. vue history模式 ios微信分享坑

    vue history模式 ios微信分享坑 问题分析:因为苹果分享会是调取签名失败是因为:苹果在微信中浏览器机制和安卓不同,有IOS缓存问题,和IOS对单页面的优化问题,通俗点说安卓进行页面跳转分享 ...

  2. Vue项目history模式下微信分享总结

    原文 : http://justyeh.top/post/39/ 2019-07-02 Vue微信分享 每回遇到微信分享都是一个坑,目前的商城项目使用Vue开发,采用history的路由模式,配置微信 ...

  3. vue hash模式下微信分享后打开首页,三种完美解决方案

    微信分享功能给我们带来了很大的便利,使得基于微信开发出来的 H5 页面可以很好的通过微信平台进行传播.所以呢,基本上每个基于微信开发的 H5 都会集成微信分享功能.但是,前几天在对接微信分享 API ...

  4. vue项目history模式下微信分享相关问题

    import wx from '@/utils/wx' import { shareApi } from '@/api' // 微信验证 export function requireConfig() ...

  5. [转]Vue项目全局配置微信分享思路详解

    这篇文章给大家介绍了vue项目全局配置微信分享思路讲解,使用vue作为框架,使用vux作为ui组件库,具体内容详情大家跟随脚本之家小编一起学习吧 这个项目为移动端项目,主要用于接入公众号服务.项目采用 ...

  6. Tomcat 配置Vue history模式

    Tomcat 配置Vue  history模式 近日 , 在使用 Tomcat 部署Vue项目时 , 刷新项目出现404的异常 . 原因是 Vue使用了history模式 , 而tomcat没有相关配 ...

  7. vue history模式下的微信分享

    // 微信验证 export function requireConfig() { let url = window.location.href systemApi.wxoption({ url: u ...

  8. vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 "invalid signature"错误解决方案

    项目背景 vue-cli生成的单页面项目,router使用history模式.产品会在公众号内使用,需要添加微信JSSDK,做分享相关配置. 遇到的问题 相关配置与JS接口安全域名都已经ok,发布后, ...

  9. vue项目中关于微信分享的坑,以及安卓和ios获取location.href不同的处理

    最近做vue项目的微信公众号项目,涉及到微信分享,记录一下心得,以备后用,vue路由用的是hash模式: 该项目只是公众号里面的h5链接,不需要获取code获取access_token的票据,因此前端 ...

随机推荐

  1. 外网通过frp进行windows远程文件共享

    需求 远程访问位于内网中的文件.例如,家里,公司内. 所需技术 frp windows文件共享 具有公网地址的服务器一台 实现过程 windows文件共享,首先自己在局域网内实现.这不是本文重点. 公 ...

  2. jdk8 ConcurrentHashMap分析

    ConcurrentHashMap分析 tryPresize() transfer() putVal() addCount() sumCount() class ConcurrentHashMap { ...

  3. 【WPF学习】第三十六章 样式基础

    前面三章介绍了WPF资源系统,使用资源可在一个地方定义对象而在整个标记中重用他们.尽管可使用资源存储各种对象,但使用资源最常见的原因之一是通过他们的保存样式. 样式是可应用于元素的属性值集合.WPF样 ...

  4. 罗德里格斯旋转公式(Rodrigues' rotation formula)推导

    本文综合了几个相关的维基百科,加了点自己的理解,从比较基础的向量投影和叉积讲起,推导出罗德里格斯旋转公式.公式比较繁杂,如有错误,欢迎评论区指出. 对于向量的三维旋转问题,给定旋转轴和旋转角度,用罗德 ...

  5. LwIP的udp学习笔记

    * Bind an UDP PCB. * * @param pcb UDP PCB to be bound with a local address ipaddr and port. * @param ...

  6. hadoop简介和环境

            Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoop实现了一个 ...

  7. 基于 H5 Canvas 实现楼宇新风系统

    前言 现如今,新型冠状病毒疫情牵动着每一个人的神经,每天起床后的第一件事就是打开疫情地图,看看最新的疫情数据. (http://www.hightopo.com/demo/coronavirus/) ...

  8. git学术

    点滴是为了生活,学术是为了未来.点滴经常看,学术用到的时候看看. #### git add 之后, git reset HEAD filename 和git checkout HEAD filenam ...

  9. IT运维软件免费送 智和信通战疫活动火热进行中

    突如其来的“新型冠状病毒”疫情牵动了全国人民的心,这是一场与病毒抗争,为生命逆行与时间赛跑的战役.举国上下众志成城面对疫情,在线医疗.在线教学.在线办公.在线会议.电商销售成为热点.线上经济的火热给企 ...

  10. RJM8L151F6P6温度枪方案对比

    疫情当下,温度计.呼吸机.监护仪.制氧机等医疗产品的生产供应至关重要,红外温度计属于非接触式测温,它是利用物体热辐射与物体温度之间的关系来工作的. 红外测温仪是一种将红外技术与微电子技术相结合的新型温 ...