vue history模式 ios微信分享 踩过的坑
背景:教育项目,整体依赖于微信环境,涉及到微信分享、微信二次分享
问题: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
vue history模式 ios微信分享 踩过的坑的更多相关文章
- vue history模式 ios微信分享坑
vue history模式 ios微信分享坑 问题分析:因为苹果分享会是调取签名失败是因为:苹果在微信中浏览器机制和安卓不同,有IOS缓存问题,和IOS对单页面的优化问题,通俗点说安卓进行页面跳转分享 ...
- Vue项目history模式下微信分享总结
原文 : http://justyeh.top/post/39/ 2019-07-02 Vue微信分享 每回遇到微信分享都是一个坑,目前的商城项目使用Vue开发,采用history的路由模式,配置微信 ...
- vue hash模式下微信分享后打开首页,三种完美解决方案
微信分享功能给我们带来了很大的便利,使得基于微信开发出来的 H5 页面可以很好的通过微信平台进行传播.所以呢,基本上每个基于微信开发的 H5 都会集成微信分享功能.但是,前几天在对接微信分享 API ...
- vue项目history模式下微信分享相关问题
import wx from '@/utils/wx' import { shareApi } from '@/api' // 微信验证 export function requireConfig() ...
- [转]Vue项目全局配置微信分享思路详解
这篇文章给大家介绍了vue项目全局配置微信分享思路讲解,使用vue作为框架,使用vux作为ui组件库,具体内容详情大家跟随脚本之家小编一起学习吧 这个项目为移动端项目,主要用于接入公众号服务.项目采用 ...
- Tomcat 配置Vue history模式
Tomcat 配置Vue history模式 近日 , 在使用 Tomcat 部署Vue项目时 , 刷新项目出现404的异常 . 原因是 Vue使用了history模式 , 而tomcat没有相关配 ...
- vue history模式下的微信分享
// 微信验证 export function requireConfig() { let url = window.location.href systemApi.wxoption({ url: u ...
- vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 "invalid signature"错误解决方案
项目背景 vue-cli生成的单页面项目,router使用history模式.产品会在公众号内使用,需要添加微信JSSDK,做分享相关配置. 遇到的问题 相关配置与JS接口安全域名都已经ok,发布后, ...
- vue项目中关于微信分享的坑,以及安卓和ios获取location.href不同的处理
最近做vue项目的微信公众号项目,涉及到微信分享,记录一下心得,以备后用,vue路由用的是hash模式: 该项目只是公众号里面的h5链接,不需要获取code获取access_token的票据,因此前端 ...
随机推荐
- sql 映射文件
...
- mongodb centos7 安装
安装MongoDB的方法有很多种,可以源代码安装,在CentOS也可以用yum源安装的方法.由于MongoDB更新得比较快,我比较喜欢用yum源安装的方法.64位Centos下的安装步骤如下: 1.准 ...
- 用java编写代码实现关机
public static void main(String[] args) { Runtime runtime = Runtime.getRuntime(); try { runtime.exec( ...
- Spring基于注解配置AOP
D:\Java\IdeaProjects\JavaProj\SpringHelloWorld\src\aop.xml <?xml version="1.0" encoding ...
- non-local static 变量初始化顺序不确定,带来的问题
所谓static对象,其寿命从被构造出来直到程序结束为止,因此stack和heap-based对象都被排除.这种对象包括global对象.定义于namespace作用域内的对象,classes内.在函 ...
- Mysql 安装出现error Nr.1045
我们在windows下安装mysql时会出现Access denied for user 'root'@localhost'(using password:No)的问题,这个问题是因为你的机器上之前安 ...
- php 关于php创建 json文件 和 对文件增删改查 示例
<?php //fopen($file,'w'); //打开文件/创建文件 //file_put_contents($file,$content)//写入文件 //file_get_conten ...
- java sql语句 like%?%报错的问题
在数据库中不会报错,但用java调用时确保错. SQL语句: SELECT pageId,`name`,text FROM Page WHERE `name` LIKE CONCAT('%',?,'% ...
- [jQuery]jQuery和DOM对象互换(四)
DOM 和 jQuery 相互转换 DOM 转jQuery $(DOM对象) # (1)直接获取 $('video'); # (2)转换 $(DOM对象) var myVideo = document ...
- Day2前端学习之路——HTML基本知识
课程目标: 通过制作自己的简历,更加清楚地了解HTML是什么,HTML5是什么.学习基本的HTML标签,理解HTML语义化概念 任务一:回答问题 1.HTML是什么,HTML5是什么? HTML是一种 ...