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

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

作者: 州Kevin | 来源:发表于2023-04-19 10:21 被阅读0次

    使用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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/tptljdtx.html