51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

微信jssdk自定义分享在iOS不生效

# 自定义分享在iOS不生效 {#自定义分享在ios不生效}

# 背景 {#背景}

微信内打开的H5页面,需要使用微信JSSDK自定义分享内容进行二次分享。

# 流程 {#流程}

进入H5落地页之前,需要先进行微信静默授权,故增加入口页面判断是否授权。若授权,使用 this.$router.replace(route) 进入落地页;若未授权,跳转至微信授权页面。

# 现象 {#现象}

在Android手机分享微信和朋友圈表现正常,均为自定义分享内容;在iOS微信不生效。

| 系统 | 微信好友 | 朋友圈 | |---------|--------------------------------------------|--------------------------------------------| | Android | 1 | 2 | | iOS | 3 | 4 |

# 原因 {#原因}

怀疑是iOS微信HTML History兼容性问题。

# 解决 {#解决}

针对iOS设备,不使用 this.$router.replacewindow.location.replace 进行页面跳转,改为使用 window.location.assign

const isIos = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
if (isIos) {
    // 此处不能使用location.replace,否则ios微信二次分享会出问题
    window.location.assign(`${window.location.protocol}//${window.location.host}${route}`)
} else {
    this.$router.replace(route)
}
赞(5)
未经允许不得转载:工具盒子 » 微信jssdk自定义分享在iOS不生效