# 分享数据到微信运动

从基础库 [2.14.0](/miniprogram/dev/framework/compatibility) 开始支持

可将用户在小程序内的运动数据分享到微信运动。

## 申请开通
小程序管理后台，「开发」-「接口设置」中自助开通该组件权限。
只针对「体育-在线健身」类目的小程序开放。

## 调用流程
开发者通过调用[wx.shareToWeRun](/miniprogram/dev/api/open-api/werun/wx.shareToWeRun.md)传入用户的运动数据，会触发弹窗，用户点击确定后即可在微信运动排行榜与详情页中展示运动数据。
![avatar](https://res8.wxqcloud.qq.com.cn/wxdoc/0bfc732e-3ca6-4fe0-a267-30e1dd315d5b.jpeg)

## 注意事项
1. 对于开发版和体验版小程序，可以在小程序内正常调用该接口，但不会展示到微信运动中。开发者在开发时可以以调用接口是否成功作为是否打卡成功的依据。
2. 用户每次打卡都会记录到微信运动中，请开发者妥善处理用户打卡成功的场景，避免重复打卡。
3. 微信运动排行榜中，展示的是最近一次打卡的第一条记录。

## 运动类型
当前支持以下运动类型的与不同运动类型支持传入的单位如下：

| 运动类型   | typeId | 支持传入单位          |
| ---------- | ------ | --------------------- |
| 锻炼       | 1001   | time/calorie          |
| 体能训练   | 1002   | time/calorie          |
| 功能性训练 | 1003   | time/calorie          |
| 瑜伽       | 2001   | time/calorie          |
| 钓鱼       | 2002   | time/calorie          |
| 广场舞     | 2003   | time/calorie          |
| 踢足球     | 2004   | time/calorie          |
| 打篮球     | 2005   | time/calorie          |
| 打羽毛球   | 2006   | time/calorie          |
| 打乒乓球   | 2007   | time/calorie          |
| 打网球     | 2008   | time/calorie          |
| 跑步       | 3001   | time/distance/calorie |
| 登山       | 3002   | time/distance/calorie |
| 骑车       | 3003   | time/distance/calorie |
| 游泳       | 3004   | time/distance/calorie |
| 滑雪       | 3005   | time/distance/calorie |
| 跳绳       | 4001   | number/calorie        |
| 俯卧撑     | 4002   | number/calorie        |
| 深蹲       | 4003   | number/calorie        |

设置时最多传入一个单位，不支持同时传入多个单位。不同单位支持传入的数量限制如下：

| 单位     | 说明                 | 有效值                                   |
| -------- | -------------------- | ---------------------------------------- |
| number   | 运动个数，单位：个   | 有效值1-10000，需为整数                  |
| distance | 运动距离，单位：米   | 有效值1-100000，需为整数                 |
| time     | 运动时间，单位：分钟 | 有效值1-1440，需为整数                   |

## 代码示例
```js
wx.shareToWeRun({
      recordList: [{
        typeId: 4001,
        number: 180
      }, {
        typeId: 3001,
        distance: 100000
      }],
      success(res) {
        wx.showToast({
          title: '打卡成功',
        })
      },
      fail(res) {
        wx.showToast({
          icon: "none",
          title: '打卡失败',
        })
      }
    })
```
