Vue3 iOS微信JSSDK授权签名错误及图片选择兼容

vue 项目中使用微信jssdk自定义分享 vue项目的页面,要在微信中打开的时候能够分享出去的时候自定义。没有自定义,使用微信默认的分享,显示的是内容都是默认的页面标题和链接,图片部分一般也是灰色的。使用微信的jssdk可以自定义这些内容。 1.安装 vue项目是用vue-cli搭建的,首先安装插件。插件名字是weixin-js-sdk,有的是用npm的方法安装,我是使用vue ui出来的视图化窗口上操作安装的(vue-cli3版本可以让之前用命令运行项目安装插件等在视图化的窗口上操作,更便捷,直接点击按钮操作。) 使用视图化操作方法是:在命 阅读详情

iOS微信JSSDK授权签名错误及图片选择兼容

转载请注明出处:https://blog.csdn.net/hx7013/article/details/143502680

一、项目概述

Vue3 + Vite + Vue-Router 4+ JS-SDK 1.6

由于之前开发调试都是在微信开发者工具及 Android 平台,后上线前测试发现 iOS 平台会出现 invalid signature 及图片选择后预览失败的问题。
查询资料后逐步解决,重新整理了下问题原因,及修复的详细代码和说明。

二、iOS 签名错误 invalid signature

由于我 vue-router 使用的是 history 模式,页面跳转后在iOS使用 window.location.href 获取到的地址签名后 wx.config 会报错 invalid signature ,使用 微信 JS 接口签名校验工具 对比过,确认签名无误,但是还是会报该错误。各种查询后得知传给后端签名的URL地址 iOS 在 vue-router history 模式下,需要传刚进入的页面url, Android可以实时window.location.href取当前url。

  • 解决方法1:
    vue-router改为hash模式。(实际就是保证了地址的不变,但是不推荐该做法,对于我这边来说,对现有项目影响较大)

  • 解决方法2:
    存储首次启动时的地址,获取JSSDK签名时判断是iOS 还是 Android,区别传入首次进入的地址或当前地址即可。

解决方法2代码:

  1. 工具类WxUtils.ts
/**
 * iOS微信内JSSDK授权需提交启动地址
 */
export const WX_ENTRY_URL_TAG = 'wxEntryUrl'

/**
 * 是否为微信浏览器
 */
export function isWxBrowser() {
   
   
    const ua = navigator.userAgent.toLocaleLowerCase()
    return /micromessenger/.test(ua)
}

/**
 * 是否为iOS浏览器
 */
export function isIOSBrowser() {
   
   
    const ua = navigator.userAgent.toLocaleLowerCase()
    return /iphone|ipad|ipod/.test(ua)
}

/**
 * 获取JSSDK授权地址
 * App.vue -> sessionStorage.setItem(WX_ENTRY_URL_TAG, window.location.href)
 */
export function loadJSSDKUrl(): string {
   
   
    let sdkUrl = window.location.href
    
uniapp + vue3模板 使用微信 JSSDK的开放标签 在微信公众号中嵌入H5页面,需要在H5页面中唤起模板通知消息弹窗 阅读详情

相关推荐

uni-app在vue3中对接微信JSSDK

import wx from "weixin-js-sdk",挂载到全局app.config.globalProperties.$wx=wx;第三步:获取JSSDK在网页中的授权信息及初始化JSSDK,授权信息是后台发返回的。在项目的终运行命令:npm i weixin-js-sdk 如下图。在APP.vue里面调用getWxSignature。第二步,在项目人口文件导入微信jssdk。第一步:引入jssdk。

meng_xiaoxiao的博客 6022

微信分享集成全攻略:从JSSDK到小程序,一次搞定社交裂变

在移动应用开发中,社交分享功能是实现用户裂变和内容传播的核心技术。其原理是通过调用平台提供的SDK接口,将应用内容以标准化格式分享至社交网络,从而带来流量回流和用户增长。这项技术的价值在于打通应用与社交平台的连接,是提升用户活跃度和实现病毒式传播的关键。在微信生态中,开发者需要根据网页、小程序和原生App等不同应用场景,选择对应的技术方案。其中,网页场景的微信JSSDK集成涉及服务端签名、安全域名配置等复杂流程,是技术难点和常见问题的集中区。本文聚焦于JSSDK的集成实战,深入解析签名生成、SPA适配等关键

culh2177的博客 706

微信HTTPS页面白屏问题深度排查与解决方案

HTTPS作为保障Web通信安全的核心协议,其工作原理基于SSL/TLS握手与证书验证机制,确保数据传输的加密与身份可信。在工程实践中,尤其在微信这类定制化浏览器环境中,证书链完整性、TLS协议版本兼容性以及服务器响应头配置等技术细节,直接决定了页面的可访问性。微信内置的X5内核在安全策略上更为严格,对不完整的证书链、不支持的加密套件或错误的Content-Type头部会直接阻断渲染,导致白屏现象。理解并优化这些基础配置,是确保H5活动页、支付回调等关键业务在微信生态内稳定运行的重要前提。本文聚焦证书校验、

weixin_30352191的博客 424

仿抖音H5商城源码全解析:从技术选型到部署上线的实战指南

在移动电商和社交内容融合的浪潮中,H5商城作为一种轻量化、跨平台的解决方案,因其开发效率高、易于传播而备受关注。其技术原理通常基于前后端分离架构,前端采用Vue.js等框架构建交互界面,后端通过PHP或Node.js提供API服务,实现商品展示、用户管理和交易流程。这种架构的价值在于能够快速搭建具备基础电商功能的系统,尤其适合内容电商、社交分销等需要快速试错的场景。以当前热门的仿抖音风格商城为例,其核心在于将短视频Feed流体验与购物流程结合,这对前端视频播放性能、后端内容处理能力提出了更高要求。本文聚焦于

weixin_34033624的博客 353

微信找茬小程序源码解析:PHP后端+跨端素材实战指南

找茬游戏是一种基于图像差异识别的轻交互型互动形式,其技术本质是前端坐标采集与后端精准校验的协同系统。核心原理在于通过Canvas获取点击位置,结合预设差异区域(如圆形热区)进行距离判定,并引入动态容错机制适配不同用户操作精度。该模式具备低门槛、高传播性、强场景延展性等技术价值,广泛应用于教培热身、品牌营销裂变、社区团购钩子等轻量级私域运营场景。在微信生态中,它必须兼顾iOS/Android双端音效兼容(WAV/M4A双轨)、WebP图片压缩、SVG蒙版自适应及分包加载性能优化。本文聚焦‘PHP后端驱动+带过

weixin_33842304的博客 480

基于Simulink的前馈解耦SVPWM整流器仿真

本文提出了一种基于Simulink的前馈解耦SVPWM整流器仿真方案,针对传统双闭环控制存在的耦合严重、电压利用率低等问题进行优化。通过前馈补偿dq轴耦合项(ωLiq和ωLid)结合SVPWM调制算法,实现了电流跟踪误差<3%、电压利用率达0.99、THD<3%的性能指标。文章详细阐述了系统架构设计,包括前馈解耦原理推导、SVPWM算法实现步骤,并提供了完整的Simulink建模方法。仿真结果表明,该方案在动态响应速度(25ms)和直流电压纹波(1.1%)方面显著优于传统SPWM控制。同时给出了

MHD0815的博客 157

实现单芯片2400bps 音频编解码方案

终于按照朋友的需求,帮他开发了一款单芯片集音频采集编码传送并接收解码播放功能的方案,交给快递公司邮寄给远在郑州的他.整个项目从开始定型到现在一个样机送出,整整花了1个月时间,感觉挺有成就感,挺有意思,工作是辛苦的,结果却是快乐的.现在将这中快乐的的心情与大家分享一下.    真个项目用一颗主控搞定,ARM9的,200KBytes 片内RAM,主频可以跑到300MHz,64pin LQFP封装

nyxsec的专栏 3676

Wireshark、Fiddler、Charles 三款抓包工具的本质差异与选型指南

抓包工具是网络调试与接口分析的基础能力,其核心在于理解OSI模型分层原理——不同工具工作在不同协议层级,解决不同维度问题。Wireshark面向网络层(L2/L3),可捕获原始数据帧与TCP握手细节,适用于DNS异常、丢包重传等底层问题定位;Fiddler和Charles则工作在应用层(L7),作为HTTP(S)代理实现HTTPS解密、请求改写与弱网模拟,是API调试与移动端测试的首选。技术价值体现在:精准匹配问题域(如证书固定需Fiddler脚本绕过,iOS调试依赖Charles证书信任链),避免‘用显微

weixin_28831341的博客 249

Windows 11最新WDK安装避坑指南:从Visual Studio配置到KMDF驱动开发

本文提供了在Windows 11系统上进行KMDF驱动开发的完整环境搭建与实战指南。针对最新WDK与Visual Studio的配置变化,详细解析了从独立安装WDK/SDK、创建首个KMDF驱动项目,到编译排错、部署调试的全流程,帮助开发者高效避坑,顺利开启Windows内核开发。

weixin_29302047的博客 514

用友U8 API 二次开发:WebService封装7个核心DLL引用与U8Login登录避坑

本文详细介绍了用友U8 API二次开发中的WebService封装与U8Login登录优化实践。通过7个核心DLL的正确引用、U8Login登录机制的深度解析及IIS环境下的特殊处理方案,为开发者提供了一套高可用性的通用解决方案,助力企业实现ERP系统的高效集成与数字化转型。

weixin_42524171的博客 498

告别Root!用Termux+ADB在Android上玩转自动化(保姆级教程)

本文详细介绍了如何在非Root环境下使用Termux和ADB实现Android自动化操作,无需Root权限即可运行自动化脚本。通过Termux搭建Linux终端环境,结合ADB无线调试和Python脚本,实现点击、滑动、截图等自动化功能,适用于定时任务、自动签到等场景。

weixin_42548888的博客 519

测试人必看!正交表与Allpairs工具对比:如何选择最适合你的组合测试方案?

本文深入对比了正交表、PICT与Allpairs三种主流组合测试方案,帮助测试人员根据项目场景做出最佳选择。文章分析了各自的核心原理、优劣势及适用场景,特别强调了在涉及复杂约束时PICT工具的强大功能,并提供了从原理学习到CI/CD集成的实战选型指南。

weixin_29224309的博客 259

YOLOv11改进有效系列目录 - 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制 - 针对多尺度、小目标、遮挡、恶劣天气等问题

在一些特定情况下,目标检测任务由于多种因素的影响,变得更加复杂和困难。以下是几类常见的困难目标检测场景:1. 小目标检测定义:小目标检测是指当目标在图像中的占比非常小时,模型需要准确识别和定位这些目标。典型场景包括远程监控、卫星图像分析等。挑战1. 低分辨率:由于目标在图像中占据像素较少,细节缺失,特征提取难度增加。2. 特征不足:小目标缺乏明显的形状和纹理特征,容易被复杂背景淹没。3. 检测难度大:由于小目标与背景之间的对比度较低,误检的几率上升。4. 数据不平衡。

qq_64693987的博客 4万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: Sonatype nexus3 数据迁移及升级3.71+(迁移到H2数据库)
x024
博客等级 码龄18年 114粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值