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; } }