JSSDK与项目刷新问题?

在项目首页的onShow中注册JSSDK的时候把当前域名存入本地:判断当前域名和本地存储的域名是否一致时再进行JSSDk注册,当微信公众号网页版项目某一页刷新会影响JSSDK吗?(刷新之后进不去wx.ready和wx.error)


回答:

1、全局注册JSSDK,在首页的onShow()中设置

 //全局注册url,为sdk做准备

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

let oldUrl = uni.getStorageSync('locationUrl');

if (url != oldUrl) {

//判断之前有没有注册

uni.setStorageSync('locationUrl', url);

uni.setStorageSync('scanRefresh', false);

this.handleReject();

}

2、handleReject方法代码如下:

handleReject() {

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

let vm = this;

let data = {

url: url,

};

Http.getSignature(data).then((res) => {

jweixin.config({

debug: false,

appId: vm.appId,

timestamp: res.data.timestamp,

nonceStr: res.data.noncestr,

signature: res.data.signature,

jsApiList: ['updateAppMessageShareData', 'updateTimelineShareData', 'scanQRCode'],

});

});

},

3、在某详情页自定义分享内容,代码如下:

jweixin.ready(function () {

//自定义“分享到朋友圈”及“分享到 QQ 空间”按钮的分享内容(1.4.0)

jweixin.updateTimelineShareData({

desc: vm.tipTxt,

title: vm.videoDetail.videoName, // 分享标题

link: vm.stareUrl, // 分享链接,该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致

imgUrl: '', // 分享图标

success: function () {

// 设置成功

},

});

//自定义“分享给朋友”及“分享到QQ”按钮的分享内容(1.4.0)

jweixin.updateAppMessageShareData({

desc: vm.tipTxt,

title: vm.videoDetail.videoName,

link: vm.stareUrl,

imgUrl: '', // 分享图标

success: function () {

},

});

});

jweixin.error((e) => {

console.log('注册失败', e);

});

4、场景:刷新页面
操作:调用分享发送给朋友
问题:自定义分享内容没显示,
解析:既没有进去jweixin.ready,也没有进去jweixin.error,说明现在JSSDK处于未注册状态,这时当前页面域名跟本地存储locationUrl一样,不会触发重新注册JSSDk
解决方案:把全局注册代码放在App.vue文件的onShow里面,并且不加条件判断(有些人有些时候用电脑打开,发现会空白,不知道是不是这里的影响)JSSDK与项目刷新问题?

以上是 JSSDK与项目刷新问题? 的全部内容, 来源链接: utcz.com/p/934353.html

回到顶部