uni-app 微信公众号在iOS中需要刷新一次才能执行自定义分

2023-04-19  本文已影响0人  州Kevin

使用uni-app开发了一个微信公众号项目

要实现分享到微信好友的功能;

微信引入和封装就不赘述了;

直接说问题和表象:

自定义微信分享在安卓中是正常的,但是在iOS中页面需要刷新一次执行能调起微信分享;

这个问题 出于以下几个原因:

1. 使用了history模式

2. ios访问只记录第一次的页面,跳转页面时页面不会改变(刷新及正常),android 正常

各路大神给出了原因:

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

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

微信官网在之前版本也描述过

解决办法:

1.首先把跳转页面的方法由 uni.navigateTo换成window.location.href

2.然后要在封装的微信分享方法里在进行微信分享签名时传入的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

引用好心人的博客:

https://www.cnblogs.com/yeziyou/p/13790261.html

https://ask.dcloud.net.cn/article/38106

上一篇 下一篇

猜你喜欢

热点阅读