Vue项目H5微信分享IOS图片不显示

388 2023年08月24日 前端

页面的结构如下:

SPA:

页面A

页面B

从页面B进入,分享没问题,但从页面A再到页面B,再分享,IOS端就出问题了。

问题原因:

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

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

修复:

router.beforeEach(function (to, from, next) {
  // document.title = to.meta.title || (process.env.VUE_APP_BGIMAGE == 1 ? '心理健康服务平台' : '海棠心悦')
  document.title = to.meta.title || "\u200E";
  from.meta.keepAlive = to.path === "/healthyDetail";
  
    let u = navigator.userAgent;
    let isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
    // XXX: 修复iOS版微信HTML5 History兼容性问题
    if (isiOS && to.path !== location.pathname) {
      // 此处不可使用location.replace
      location.assign(to.fullPath)
    } else {
      next()
    }
})
评论

0 条评论
OBJUI公众号
热门文章
  • go语言怎么连接mysql,并实现增删改查

    要使用Go语言连接MySQL,需要使用第三方库。常用的库包括: 这里以go-sql-driver/mysql为 […]

  • 使用Echarts画甘特图

    Echarts是一个非常强大的图表库, 下面我们来使用它来画甘特图,

  • Beego实现JWT

    Beego是一个基于Go语言的Web框架,实现JWT认证可以通过beego的中间件机制来实现,下面是一个简单的 […]

  • beego实现模块化开发

    Beego 框架可以通过模块化开发来提高项目的可维护性和可扩展性,可以将一个大型的应用划分为多个模块,每个模块独立维护,有自己的控制器、视图和模型等。

  • go实现MD5

    在这个示例中,我们使用了Go标准库中的crypto/md5包来计算一个字符串的MD5值。首先,我们将字符串转换 […]

  • 使用Axios+PHP+JWT实现登录认证

    JWT(JSON Web Token),顾名思义就是可以在Web上传输的token,这种token是用JSON格式进行format的。它是一个开源标准(RFC7519),定义了一个紧凑的自包含的方式在不同实体之间安全的用JSON格式传输信息。

  • Linux服务器Rsync结合inotify同步文件

    一、实现效果 服务器A:192.168.161.150 (分布服务器)(rsync客户端+inotify) 服务器B:192.168.161.151 (WEB服务器1)(rsync服务端) 服务器C:192.168.161.152 (WEB服务器2)(rsync服务端) 说明:服务器A有文件更新,自动同步到服务器B和C

  • wordpress自定义配置

    在制作插件时,自定义的配置项是经常会遇到的。在左侧“配置”的常规菜单下添加配置以下代码可实现:

  • JavaScript中async和await的应用

    async和await是ES7中引入的关键字,用于简化Promise操作,提高Promise代码的可读性和理解性。它们结合使用可以使得异步调用不返回Promise对象,而直接把then回调函数的第一个形参result给返回出来,使代码更节俭,开发效率更高。

  • wordpress中使用事务处理

    修改Mysql引擎,因为InnoDB才支持事务