- 微信公众号分享的时候需要自定义分享的卡片,但是如果内容是爬虫得来的,头文件加了<meta name="referrer" content="no-referrer">防盗链,就会影响到微信的自定义写好的分享,no-referrer很严格。
- 所以就需要分享的时候从前端传给后端真实的link路径。
data: {url:window.location.href.split('#')[0]}
以上路径需要截取,如果传,window.location.href 会造成安卓机正常分享,而苹果机ios系统debug的时候会出现,签名不合法的问题,但是如果页面进行刷新之后就会正常分享。
这是由于
-
IOS:每次切换路由,SPA的url是不会变的,发起签名请求的url参数必须是当前页面的url(就是最初进入页面时的url)
-
Android:每次切换路由,SPA的url是会变的,发起签名请求的url参数必须是当前页面的url(不是最初进入页面时的)
所以以上方法能完美的解决安卓机和苹果机的不兼容问题。
另外还提供一种方法,如果上述方法不能完美解决
如果想实现自定义:
- 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前,加动态判断
- 按照微信的开发文档先把各项值要都配置正确。
- 打开debug:true调试模式,手机运行查看alert,观察是否有报错。
- 解决报错问题。