fix(subscribe): 修复小程序授权"未获得提醒授权"——避免授权弹窗与公告弹窗重叠

- openNotice 改为串行:先请求订阅授权,等授权弹窗关闭后再展示平台公告(此前两原生弹窗重叠会取消授权,回调全 reject)
- 授权结果区分展示:成功显示已开启项数;未同意提示可在微信设置中重新允许;接口报错显示 errCode
- requestSubscribeAll 单次最多取前3个模板(微信限制),并返回 resultMap 便于排查
- 回归 87 套件/639 用例全绿
这个提交包含在:
xcbyy
2026-10-19 11:36:12 +08:00
父节点 c17afd20d5
当前提交 b88442af28
共有 3 个文件被更改,包括 41 次插入 和 21 次删除

查看文件

@@ -73,14 +73,16 @@ export function requestSubscribeAll() {
if (tmplIds.length === 0) {
return resolve({ supported: true, tmplIds: [], accepted: [], rejected: [], noTemplates: true });
}
// 微信单次最多 3 个模板
const batch = tmplIds.slice(0, 3);
uni.requestSubscribeMessage({
tmplIds,
tmplIds: batch,
success: (res) => {
const accepted = tmplIds.filter((id) => res && res[id] === 'accept');
const rejected = tmplIds.filter((id) => !res || res[id] !== 'accept');
resolve({ supported: true, tmplIds, accepted, rejected, raw: res });
const accepted = batch.filter((id) => res && res[id] === 'accept');
const rejected = batch.filter((id) => !res || res[id] !== 'accept');
resolve({ supported: true, tmplIds: batch, accepted, rejected, resultMap: res });
},
fail: (err) => resolve({ supported: true, tmplIds, accepted: [], rejected: tmplIds, error: err }),
fail: (err) => resolve({ supported: true, tmplIds: batch, accepted: [], rejected: batch, error: err }),
complete: () => {}
});
} catch (e) {