返回顶部
首页 > 资讯 > 前端开发 > VUE >VUE如何解决微信签名及SPA微信invalid signature问题
  • 261
分享到

VUE如何解决微信签名及SPA微信invalid signature问题

2024-04-02 19:04:59 261人浏览 八月长安
摘要

这篇文章主要介绍了Vue如何解决微信签名及SPA微信invalid signature问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求

这篇文章主要介绍了Vue如何解决微信签名及SPA微信invalid signature问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

需求: 使用微信的功能

原因:

1. 项目基于vue,在微信上的WEB应用

2. 要使用上传功能(不同系统的兼容真的很多BUG,最后只能使用微信方案),支付功能,定位....

3. 签名一直存在bug和问题,那么后面的功能都会唤不起(偶尔也可以)

签名

1. 流程详细请看文档,反正能力有限,没看出什么名堂,总结一句话,要使用先签名

2. 开启填坑之路,由于微信使用会区分iOS和安卓系列,不同系列产生不一样的问题

(公司项目第一版的时候就给微信大坑过,所以本次重构的时候,就格外注意这一点)

安利一个在微信下能检测内核的判断:window.__wxjs_is_wkwebview(是否为webview内核),如果是的情况下就变成true

因为SPA应用下,会有一定的问题,路由采用的是history模式(不带#号)。因为在页面每次进入到路由之后才去获取签名授权,所以将方法公用写在路由的模块下

VUE如何解决微信签名及SPA微信invalid signature问题

router.afterEach((to, from) => {    //   伸手党福利
 // window.__wxjs_is_wkwebview
  // true 时 为 ioS 设备
  // false时 为 安卓 设备
 if (window.__wxjs_is_wkwebview) { // IOS
  if (window.entryUrl == '' || window.entryUrl == undefined) {
   var url = `${FRONT_BASE}${to.fullPath}`
   window.entryUrl = url  // 将后面的参数去除
  }
  getWxAuth(to.fullPath,"ios")
 }else {    // 安卓
  setTimeout(function () {
   getWxAuth(to.fullPath,"Android")
  }, 500);
 }
})
  • window.entryUrl这个是什么鬼?这个是自己定义的全局属性,就是为了获取IOS第一次进入页面的时候存储起来的,如果IOS的签名的路径不是第一次进入的页面,那么就一定会失败,所以这个路由第一次进入就要储存起来

  • 为什么要写在router.afterEach,因为页面进入了再去做申请和签名,如果在beforeEach,会导致页面申请签名的时候还是上一个页面,但是到了新页面却没有注册签名,或者因为签名的路径不同,导致invalid signature

  • 为什么安卓的时候要增加一个延时器,因为安卓会存在一些情况,就是即便签名成功,但是还是会唤不起功能,这个貌似是一个比较稳妥的解决办法,

看完路由模式了,就来进入逻辑部门,来看看如何处理

VUE如何解决微信签名及SPA微信invalid signature问题

有同学疑惑这个encodeURIComponent是干嘛用的,其实具体很简单,就是因为我们在微信分享的时候,会自动给我们带上参数(记得告诉后端的伙伴要decodeURIComponent),切记只要带参数就一定要转码!

对于IOS系统会自动增加如下参数:

  • 朋友圈 from=timeline&isappinstalled=0

  • 微信群 from=groupmessage&isappinstalled=0

  • 好友分享 from=singlemessage&isappinstalled=0

对于安卓系统会自动添加如下参数:

  • 朋友圈 from=timeline

  • 微信群 from=groupmessage

  • 好友分享 from=singlemessage

然后就直接去请求签名,写法就不深究,getWeChat是封装的axios,只是为了统一管理才这么写,大家可以写成正常的请求axios('xxxx.com/get-wx',obj).then()这样的写法,一样的效果

VUE如何解决微信签名及SPA微信invalid signature问题

到了这一步就基本上是请求签名成功,但是有同学疑惑,那么IOS每次分享的时候会不会是进去的第一个路由,我的回答是会的(需要稍加处理)

VUE如何解决微信签名及SPA微信invalid signature问题

感谢你能够认真阅读完这篇文章,希望小编分享的“VUE如何解决微信签名及SPA微信invalid signature问题”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网VUE频道,更多相关知识等着你来学习!

--结束END--

本文标题: VUE如何解决微信签名及SPA微信invalid signature问题

本文链接: https://lsjlt.com/news/76489.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • VUE如何解决微信签名及SPA微信invalid signature问题
    这篇文章主要介绍了VUE如何解决微信签名及SPA微信invalid signature问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求...
    99+
    2024-04-02
  • 如何解决微信二次分享报错invalid signature的问题
    这篇文章主要为大家展示了“如何解决微信二次分享报错invalid signature的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决微信二次分享报错...
    99+
    2024-04-02
  • 基于微信签名signature获取(实例讲解)
    微信分享的签名算法微信也写有,主要是调用接口需要使用服务器(微信官方文档是这么说的,试了下前端居然特么也可以),不过微信的access_token和jsapi_ticket是有使用次数限制的,所以还是用服务器来获取,得到以后存下来,下次使用...
    99+
    2023-05-31
    获取 signature
  • 微信活码技术如何解决微信群二维码失效问题
    我们都知道微信群未满100人之前可以分享群二维码,让我们的粉丝通过扫码进群,但是人数超过100后,发出的二维码就失效了,无法再次扫码进群,因此,很多人会有微信群满100人怎么再加人,今天给大家介绍下活码技术。传统的解决方式可能是,重新建一个...
    99+
    2023-06-04
  • 如何解决HTML5微信播放全屏问题
    这篇文章主要为大家展示了“如何解决HTML5微信播放全屏问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决HTML5微信播放全屏问题”这篇文章吧。在io...
    99+
    2024-04-02
  • 如何解决ios配置微信config出现验签失败的问题
    这篇文章给大家分享的是有关如何解决ios配置微信config出现验签失败的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在开发中,出现了一个关于微信配置的问题。使用的开发工具以及开发框架为 uniapp , ...
    99+
    2023-06-14
  • 如何解决php微信登录41001错误问题
    本文操作环境:windows7系统、PHP7.1版、DELL G3电脑如何解决php微信登录41001错误问题?小程序登录解密用户数据encryptedData -41001: encodingAesKey 非法做小程序微信授权登录遇到的坑...
    99+
    2017-04-02
    php
  • 微信小程序getUserInfo授权问题如何解决
    本篇内容主要讲解“微信小程序getUserInfo授权问题如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序getUserInfo授权问题如何解决”吧!设置一个用户授权登录的过渡页...
    99+
    2023-06-26
  • Discuz微信分享问题解决方案
    Discuz微信分享问题解决方案 在使用Discuz论坛系统开发网站时,经常会遇到微信分享的问题,有时分享出去的内容显示不正常,甚至无法正常分享。本文将介绍如何解决Discuz微信分享...
    99+
    2024-03-10
    解决方案 discuz 微信分享
  • 微信小程序如何实现手写签名
    这篇文章主要介绍了微信小程序如何实现手写签名的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序如何实现手写签名文章都会有所收获,下面我们一起来看看吧。效果wxml<view class=&...
    99+
    2023-07-02
  • 如何在PHP中实现微信JS-SDK签名
    随着微信的普及和发展,微信公众号已经成为了许多企业和个人进行营销宣传的首选平台。而微信JS-SDK则是微信公众号开发中不可或缺的一部分。它可以帮助我们实现一些交互性更强,更有趣的功能,比如分享到朋友圈,调用微信支付等。本文将介绍如何在PHP...
    99+
    2023-05-14
    PHP 微信JS-SDK 签名
  • 如何解决微信浏览器下拉黑边的问题
    这篇文章主要介绍了如何解决微信浏览器下拉黑边的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。开始由于在开发微信页面的时候下拉黑边的情况很...
    99+
    2024-04-02
  • 如何解决微信小程序入口场景的问题
    这篇文章主要为大家展示了“如何解决微信小程序入口场景的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决微信小程序入口场景的问题”这篇文章吧。前言最近一...
    99+
    2024-04-02
  • php怎么解决微信昵称乱码问题
    这篇文章主要讲解了“php怎么解决微信昵称乱码问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php怎么解决微信昵称乱码问题”吧!php解决微信昵称乱码的方法:1、使用decodeURIC...
    99+
    2023-06-20
  • 怎样解决微信支付php7.0错误问题
    这篇文章主要为大家分析了怎样解决微信支付php7.0错误问题的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“怎样解决微信支付php7.0错误问题”的知识吧。微...
    99+
    2023-06-28
  • nuxt如何解决微信公众号支付遇到的问题
    这篇文章将为大家详细讲解有关nuxt如何解决微信公众号支付遇到的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。背景:nuxt为默认的history模式,用这个npm ...
    99+
    2024-04-02
  • 关于ios配置微信config出现验签失败的问题解决
    在开发中,出现了一个关于微信配置的问题。 使用的开发工具以及开发框架为 uniapp , JSSDK为 jweixin 使用uniapp进行公众号开发,需要在进入某个页面时候进行微信...
    99+
    2022-05-28
    ios config 验签失败
  • 如何解决vue单页面在微信下只能分享落地页的问题
    这篇文章主要介绍如何解决vue单页面在微信下只能分享落地页的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实际上关键词叫 微信pushState只能分享落地页 更贴切一点应用场景...
    99+
    2024-04-02
  • 怎么解决php微信登录41001错误问题
    这篇文章主要介绍“怎么解决php微信登录41001错误问题”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么解决php微信登录41001错误问题”文章能帮助大家解决问题。php微信登录41001错误...
    99+
    2023-06-26
  • 微信小程序兼容性问题怎么解决
    这篇文章主要介绍“微信小程序兼容性问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序兼容性问题怎么解决”文章能帮助大家解决问题。运行环境差异微信小程序运行在三端:iOS、Andro...
    99+
    2023-06-26
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作