IOS设备JSSDK分享API时好时坏,尤其是二次分享,安卓没有问题,为什么?
发布于 6 年前 作者 qiang86 1560 次浏览 来自 官方Issues

一.背景

VUE-cli 2,路由模式是HISTORY.

例如系统的网址X是www.123456.com,公众号配置的域名也是这个.

二.步骤

1.进入A页面后判断,然后window.open()到微信授权地址

2.微信授权后又重新跳转X网址,又重新进入A页面.

3.然后进行JSSDK的config,然后调用分享接口

三.自己的代码情况:

1.config的URL已经做了安卓和IOS的区分

if (publicFun.isIOS()) {//是IOS
          url = this.PUBLICCONFIG.entryUrl;//全局设置的入口地址,注意,A页面会有一次window.open 跳转,所以他的值总是第二次跳转的URL,这个URL是带着用户的code的.config相关配置都是通过这个url来获取的

  }

else {//非IOS

          url = location.href.split('#')[0];
  }

2.分享图片已经压缩至18kb,

3.前端的url也通过encodeURIComponent()方法进行转码

四.错误表现

1.由菜单进入页面时基本都能分享设置成功,偶尔出现子页面设置不成功的情况

2.在第1次分享成功的情况下,打开这个分享的了链接,2次分享经常失败

3.每个页面会有两个url,第二个URL都是一样的,都是微信授权后带code 的url,

    第一个url由你进入的方式决定:

        3.1菜单进入时,就是你配置的网址X是www.123456.com

        3.2别人分享的链接进入时,他会在你的网址X后面加一些参数,form=xxxxx 之类的.

        >我尝试过用这第一个URL进行config,但是根本不能用.

五.各种尝试

1…尝试过用A页面为跳转时的第一个连接,也就是网址X:www.123456.com,直接主页都不能分享了…

2.尝试过IOS 每进行一个路由跳转都进行一次 config和分享配置,依旧无用

2 回复
wx.config()
wx.ready(res => {
  // 如果需要定制ready回调方法
  console.log(res)
  wx.updateTimelineShareData() // 分享到朋友圈
  wx.updateAppMessageShareData() // 分享给朋友
})
updateTimelineShareData()和updateAppMessageShareData()一定要放在wx.ready()里,不然可能会出问题,这样二次分享就可以了
回到顶部