纯血鸿蒙系统和IOS调用微信的invalid signature
问题描述
微信公众号上挂载的H5程序,调用wx.getLocation出现的错误--invalid signature
程序之前调用这个接口一直都没问题(IOS和安卓都没问题),但是上周五客户的公司有员工换了华为的最新的某款手机,系统为纯血鸿蒙在调用定位接口的时候就出现了invalid signature。
检查问题
客户的公众号就绑定了服务器域名,没办法只能在尽量不影响客户使用的情况下去测试。
网上搜了一下关于鸿蒙系统微信的这个问题,相关内容还是比较少的。
先按照官方文档出的问题排查流程检查一遍吧,按照步骤检查下来没有问题(其他系统都没问题,文档中列出的问题之前都是解决了的)
没招了,但是想到了之前解决IOS的时候就是因为通过<font style="color:#080808;background-color:#ffffff;">window.location.href</font>获取到的url和IOS微信系统实际感知的URL不同,IOS中用于获取签名的URL应该是首次进入程序访问的页面的URL。想着是不是纯血鸿蒙也是这个问题。
马上进行验证
问题解决
1) 缓存首次进入的URL,我是在App.vue中缓存的
▼javascript复制代码localStorage.setItem("homeUrl",href)
2) 判断系统类型
- 先打印一下
navigator.userAgent中鸿蒙系统的标识是什么

- 根据这个标识去判断类型,使用缓存的首页url还是当前页面的url
▼javascript复制代码export async function getConfigParams() { let localUrl = encodeURI(window.location.href.split('#')[0]) //获取当前设备类型 const ua = navigator.userAgent.toLowerCase() const isIOS = /iphone|ipad|ipod/gi.test(ua) const isHarmony = /openharmony/gi.test(ua) if (isIOS || isHarmony) { localUrl = encodeURI(localStorage.getItem('homeUrl')) } const res = await request({ url: '/wx/config', method: 'get', params: { url: localUrl, } }) return res.result }
3) 进入页面就调用wx.config,我之前写的是调用getLoaction之前才去调用config。
查询这个问题的时候看到很多博客的做法都是进入程序后就先把所有要用的接口的权限都初始化了。所以改为了在mounted中执行config
▼javascript复制代码export async function initConfig() { // 登录之后获取获取签名权限 const configParams = await getConfigParams() // 请求后端获取签名串、随机串等参数 wx.config({ debug: false, ...configParams, jsApiList: ['getLocation'], success: () => { console.log('wx.config配置完成') }, fail: (err) => { Toast(`wx.config配置失败:${JSON.stringify(err)}`) console.log('wx.config配置失败:', err) } }) }
问题最后就解决了!!!!
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
Agent-Reach实测:让AI Agent一键搜索全网,我踩了3个大坑
4
HR问我"为什么35岁想退休",我愣住了
5
图像复原和扩散模型怎么入门啊,纯新手小白啥都不会,求大佬们指点一下方向
0
【入职求助贴】萌新刚入职某大厂做后端开发,目前还在试用期。最近遇到一个棘手的问题,想向大家求助一下。入职不久,leader 给我派了一个任务。跟我说是0.5天就可以解决,我刚毕业入职,做了一个星期没有做出来。实现一个收集定时成功任务的案例。听起来好像不复杂,但我自己摸索着做了一整个星期,到现在还没达到预期效果。这一周我基本是“边学边做”的状态,遇到卡点也会每天主动找 leader 沟通进度和疑问。
2
🐟友们,工作后,周末你们一般都干啥🤔
0
作者分享
为啥我用Gemini或者ChatGpt生成的图片,里面的中文都是这种样子啊。我之前用即梦AI生成UI界面也是这种,豆包生成的图片里面中文倒是正常,但是有豆包的水印
1
马上过年了,写一下今年的年终总结吧
一、个人背景与工作概况
在辞掉毕业后第一份工作,不算第一份工作的时间的话经历了一年的职业空窗期,我重新进入职场。虽然目前的岗位与理想状态有一定差距,但考虑到实际情况,我选择先稳定下来,积累经验。
入职后,我独立负责了一个从零开始的项目。初期由于刚进入职场,面对已设计好的数据库和紧张的工期,虽然察觉到设计存在不合理之处,但出于谨慎没有提出异议。目前该项目由我一人维护,由于初期架构问题,现在每次修改都感到非常棘手,这也成为了我工作中的一大痛点。早知道还是勇敢一点说出来的。
二、技术学习与成长
今年在业余时间投入了大量精力进行技术学习,主要集中在AI应用开发和后端技术栈两个方向:
● AI应用开发:跟随鱼皮课程学习了AI代码生成器和AI超级智能体的开发;自学了LangChain框架和Spring AI;探索了其他平台的智能云盘项目。
● 后端技术:深入学习Python;工作需要开始接触C#;学习了RabbitMQ消息队列。
● 实战项目:近期开始学习一个商城项目,虽然这类项目比较常见,但能更好地整合我的工作技能。
● 前端项目: 跟着B站的小满zs学习react,目前正在进行中。
准备开新坑,跟着一个星球社区学习一个商城项目,商城烂大街了,但是好整合到工作的简历中。
虽然学习了AI代码生成和超级智能体等前沿技术,但由于项目性质原因,暂时未能将其编入工作简历中。小公司背景下确实有点怕写上去,也不知道怎么整合上去。
三、工作中的挑战与反思
● 公司技术环境:尝试在工作中使用vibe coding(特别是前端页面开发),但由于公司项目缺乏统一规范,效果不佳。项目现状存在以下问题:单体架构,无详细文档;异步调用混乱,难以追踪;方法命名和参数传递不规范。明明可以用技术实现单边账的解决,但还是要我们手动去处理。周末有时候都要我去处理。🙃🙃
● AI技术应用:虽然学习了AI应用开发,但一直缺乏实战机会。公司曾开发病例规范性检查助手,本以为能有实战机会,结果最终采用了第三方接口,我的工作仅限于简单的SSE调用。从效果来看,对方的实现还不如我在课程中学到的内容完善。
● 个人习惯问题:最大的缺点是注意力容易分散。在学习一个项目时,看到其他感兴趣的项目就会转移注意力。看到各种技术资讯(如C++、Go、Kotlin等)都会产生学习冲动,导致精力分散。
四、生活与工作平衡
在朋友的带动下,今年开始坚持健身。但由于公司同事普遍较晚下班(接近七点),导致我六点半离开时会有心理压力。目前的日常节奏是:下班后健身至8:30,9点到家,之后利用两三个小时学习。
家里面一直在介绍女生认识,但是不太会和女生接触没什么经验,找不到共同话题,也害怕约人家出来玩。🥺🥺🥺
5
进入疲惫期了,下班回家都不想学习了
2
今天使用trae的是翻代码翻着翻着代码就不显示了,向上滚动之后又出来了,这个怎么解决啊。重新安装trae吗
2
向大家请教一下问题
1.这种微信搜索之后出来是一个卡片的效果叫什么呢?
2.这种是腾讯为认证了的大机构和大公司配置的吗?用户可以自己申请配置吗?
3.如果可以配置,是有服务号\小程序\公众号的限制吗
4.我找到一个文档:https://wsad.weixin.qq.com/wsad/zh_CN/htmledition/service/html/index.html,但是我登陆到服务号(客户已经认证了,且满6个月)的后台之后没有这个申请按钮
1
