收藏
回答

wx.getWeRunData

问题类型 API/组件名称 微信版本 基础库版本
Bug wx.getWeRunData 8.0.69 3.11.1

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/werun/wx.getWeRunData.html

其他小程序调用该接口,只要调用步数信息就是同步更新吗,我目前发现调用后,步数没变化,需要先进入微信官方的微信运动小程序后,再次调用该接口才会更新步数?


回答关注问题邀请回答
收藏

2 个回答

  • 一笑皆春
    一笑皆春
    2天前

    这里有个描述看一下呢

    2天前
    有用
    回复 3
    • 熊大
      熊大
      2天前
      wx.login调用了,我没理解他说的 ‘步数信息会在用户主动进入小程序时更新。’这句话是指 进入到微信官方的 微信运动 小程序吗,目前来看我是需要进入到官方的 微信运动 小程序后,再去调用步数接口 步数才会更新
      2天前
      回复
    • 熊大
      熊大
      2天前
      接口调用正常,看来应该是:即便其他小程序调用了步数接口,步数都不是最新的步数,还是需要用户自己先进入 官方的 微信运动 更新他们的缓存,我们才能获取到最新的缓存步数,太奇葩了
      2天前
      回复
    • 一笑皆春
      一笑皆春
      1天前回复熊大
      嗯嗯,有可能的
      1天前
      回复
  • 智能回答 智能回答 本次回答由AI生成
    2天前
    有用
    回复 1
    • 熊大
      熊大
      2天前
      wx.login({
            success: (loginRes) => {
              const code = loginRes.code;
              if (!code) {
                this.setData({ stepCountSyncing: false });
                return;
              }
              wx.getWeRunData({
                success: (weRes) => {
                  const encryptedData = weRes.encryptedData;
                  const ivData = weRes.iv;
                  if (encryptedData) {
                    getRunData({ code, encryptedData, planId: '', ivData })
                      .then((res) => {
                        if (res && res.code === 200 && res.data != null) {
                          const data = res.data;
                          const step = Number(data.step) || 0;
                          const yesterdayStep = Number(data.yestodayStep) || 0;
                          const goal = this.data.stepsGoal;
                          const percent = goal > 0 ? Math.min(100, (step / goal) * 100) : 0;
                          const stepsCurrentText = String(step).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
                          let stepsVsYesterday = '';
                          if (yesterdayStep > 0) {
                            const diff = step - yesterdayStep;
                            if (diff > 0) {
                              const pct = Math.round((diff / yesterdayStep) * 100);
                              stepsVsYesterday = '较昨日 ↑ ' + pct + '%';
                            } else if (diff < 0) {
                              const pct = Math.round((-diff / yesterdayStep) * 100);
                              stepsVsYesterday = '较昨日 ↓ ' + pct + '%';
                            } else {
                              stepsVsYesterday = '与昨日持平';
                            }
                          }
                          this.setData({
                            stepsCurrent: step,
                            stepsCurrentText,
                            stepsPercent: Math.round(percent * 100) / 100,
                            stepsVsYesterday,
                            stepCountSyncing: false
                          });
                        } else {
                          this.setData({ stepCountSyncing: false });
                        }
                      })
                      .catch(() => {
                        this.setData({ stepCountSyncing: false });
                      });
                  } else {
                    this.setData({ stepCountSyncing: false });
                  }
                },
                fail: () => {
                  this.setData({ stepCountSyncing: false });
                }
              });
            },
            fail: () => {
              this.setData({ stepCountSyncing: false });
            }
          });
      2天前
      回复
登录 后发表内容