前端解决微信公众号分享安卓机是正常的,苹果手机提示签名不合法

文章探讨了在微信公众号中自定义分享卡片遇到的问题,当使用防盗链设置如`<metaname=referrercontent=no-referrer>`时,会影响iOS和Android设备的分享。解决方案包括前端传给后端真实链接,以及针对不同平台(iOS需要在App.vue中缓存URL,而Android则不需要)动态处理URL。确保遵循微信开发文档配置wx.config,并开启调试模式来排查错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 微信公众号分享的时候需要自定义分享的卡片,但是如果内容是爬虫得来的,头文件加了<meta name="referrer" content="no-referrer">防盗链,就会影响到微信的自定义写好的分享,no-referrer很严格。
  2. 所以就需要分享的时候从前端传给后端真实的link路径。
data: {url:window.location.href.split('#')[0]}

以上路径需要截取,如果传,window.location.href  会造成安卓机正常分享,而苹果机ios系统debug的时候会出现,签名不合法的问题,但是如果页面进行刷新之后就会正常分享。

这是由于

  • IOS:每次切换路由,SPA的url是不会变的,发起签名请求的url参数必须是当前页面的url(就是最初进入页面时的url)

  • Android:每次切换路由,SPA的url是会变的,发起签名请求的url参数必须是当前页面的url(不是最初进入页面时的)

 所以以上方法能完美的解决安卓机和苹果机的不兼容问题。

另外还提供一种方法,如果上述方法不能完美解决

如果想实现自定义:

  1. ios要在App.vue中获取并缓存该url,android这不需要。你需要动态判断设备系统类型
    复制代码uni.setStorageSync('url',window.location.href) //在App.vue中获取并缓存
    复制代码let url = uni.getSystemInfoSync().platform === 'ios' ? uni.getStorageSync('url') : window.location.href //在你传给后端url获取返回参数配置wx.config前,加动态判断
  2. 按照微信的开发文档先把各项值要都配置正确。
  3. 打开debug:true调试模式,手机运行查看alert,观察是否有报错。
  4. 解决报错问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值