折翼的飞鸟

导航

Taro微信转支付宝小程序:问题三 Taro.getAccountInfoSync 不支持

Taro 在微信小程序中 Taro.getAccountInfoSync 来获取appid,但在支付宝小程序里面发现该接口未定义,

查看了 支付宝文档,在基础库 2.7.17 开始提供 getAccountInfoSync 该接口。

所以问题应该就是版本不支持,要做一个兼容处理,低于2.7.17版本的要 使用支付宝的 getAppIdSync 接口

/**
 * 支付宝小程序版本兼容问题
 * @param {string} v1
 * @param {string} v2
 * @returns {-1 | 0 | 1}  1=(v1 > v2),  0=(v1==v2), -1=(v1 < v2)
 * */
export const compareVersion = (v1, v2) => {
  let s1 = v1.split(".");
  let s2 = v2.split(".");
  let len = Math.max(s1.length, s2.length);

  for (let i = 0; i < len; i++) {
    let num1 = parseInt(s1[i] || "0");
    let num2 = parseInt(s2[i] || "0");

    if (num1 > num2) {
      return 1;
    } else if (num1 < num2) {
      return -1;
    }
  }
  return 0;
}

/**
 * 获取小程序appid
 * */
export const GetAccountAppId = () => {
  if (process.env.TARO_ENV && compareVersion(Taro.SDKVersion, '2.7.17') < 0) {
    // 支付宝小程序, 基础版本低于2.7.17,使用getAppIdSync接口获取appid
    return Taro.getAppIdSync().appId;
  } else {
    const accountInfo = Taro.getAccountInfoSync();
    return accountInfo.miniProgram.appId;
  }
}

 

posted on 2022-09-17 19:30  折翼的飞鸟  阅读(275)  评论(0编辑  收藏  举报