fix(subscribe): 修复小程序授权"未获得提醒授权"——避免授权弹窗与公告弹窗重叠
- openNotice 改为串行:先请求订阅授权,等授权弹窗关闭后再展示平台公告(此前两原生弹窗重叠会取消授权,回调全 reject) - 授权结果区分展示:成功显示已开启项数;未同意提示可在微信设置中重新允许;接口报错显示 errCode - requestSubscribeAll 单次最多取前3个模板(微信限制),并返回 resultMap 便于排查 - 回归 87 套件/639 用例全绿
这个提交包含在:
@@ -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) {
|
||||
|
||||
在新工单中引用
屏蔽一个用户