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

前端 - 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索引读取器上

  • 有没有大哥懂 react umi打包成jssdk 嵌入到其他项目里 script标签引入这样 类似iframe效果阿!!!!! 类型这种效果 爆红

  • 这是一个前后端分离的项目:前端是React,后端是Node.js 本地测试没有任何问题,上传到云服务器之后,测试后端没有任何问题。但是React却无法把数据发给后端 网上查询用Nginx部署前端,我的nginx核心配置文件如下 外网访问http://www.xiaoyangst.top能够看到前端,说明nginx配置没有问题,但是代理配置应该存在问题,即跨域问题 本地测试环境跨域问题没有,因为可以