当前位置: 首页 > 知识库问答 >
问题:

前端 - JSSDK与项目刷新问题?

董品
2023-05-25

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

共有1个答案

公西兴业
2023-05-25

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
解决方案:把全局注册代码放在Appo.vue文件的onShow里面,并且不加条件判断(有些人有些时候用电脑打开,发现会空白,不知道是不是这里的影响)image.png

 类似资料:
  • uniapp项目如何监听页面刷新

  • 在项目的视频详情页中我已经注册了JSSDK,也注册成功了,可以正常使用扫一扫和自定义分享,但是这时我们点击微信的刷新,扫一扫和分享功能有问题,JSSDK已经变成未注册状态,请问这个情境下的问题如何解决

  • 问题内容: 如果将新文档索引到Elasticsearch索引,则可在索引操作后1秒钟左右搜索新文档。但是,可以通过调用或对索引进行操作来强制使该文档可立即搜索。这两个操作之间有什么区别- 结果似乎对他们来说是相同的,可以立即搜索文档。 这些操作中的每一项到底是什么? ES文档似乎并未深入解决此问题。 问题答案: 您得到的答案是正确的,但我认为值得详细说明。 刷新有效地调用了Lucene索引读取器上

  • 我正在尝试将后端项目myonlinebackend与前端项目myonlineshopping链接起来,在添加“private session factory session factory;”之前,它工作得很好去CategoryDAOImpl.java。但是在声明了sessionFactory变量之后,我得到了下面这个错误。 这是我的课程: 类别.java CategoryDAOImpl.java

  • 本文向大家介绍vue项目刷新当前页面的三种方法,包括了vue项目刷新当前页面的三种方法的使用技巧和注意事项,需要的朋友参考一下 想必大家在刨坑vue的时候也遇到过下面情形:比如在删除或者增加一条记录的时候希望当前页面可以重新刷新或者如下面这种: 如果希望点击确定的时候,Dialog 对话框关闭的时候,当前http://localhost:9530/#/supplier/supplierAll页面可