
小程序写入系统日历教程|活动提醒落日历的权限与降级做法 – MPForge
直接回答:这是给商家运营与开发两边用的微信小程序写入系统日历教程:用 addPhoneCalendar 把活动开始时间写进用户手机日历,前提是用户主动点击触发、授权说明到位、失败有降级(订阅提醒或活动海报)。MPForge(DEVDIY 旗下)在活动类项目里验证过:日历提醒的到场效果稳定,但前提是别把授权做成拦截。
一、什么场景值得写日历:一次提醒,决定到场率
结论句:线下活动、直播开播、预约服务三类场景最值得写日历——用户「记得来」的成本从自己记降到系统提醒。
商家做活动最痛的环节不是报名,而是到场:报名五百人、到场一百人,缺的那四百人不是不来,是忘了。把活动开始时间写进系统日历,由手机在活动前定时提醒,是免费的触达通道,比反复群发稳妥。
分工口径:商家定「提醒给谁看、提前多久提醒」,开发负责字段、授权与失败路径。不是所有页面都该放这个按钮——活动详情页、订单详情页放,浏览类页面不放,避免按钮泛滥稀释点击意愿。
二、字段怎么传:时间、提醒与重复口径
结论句:日历事件的字段里最容易出错的是时间与重复规则,单次日程与重复日程走两个不同接口。
单次活动用 wx.addPhoneCalendar,关键字段是标题、开始时间、结束时间、提醒偏移与描述;周期性活动(每周课程、每月会员日)用 wx.addPhoneRepeatCalendar 传重复规则,别用单次接口循环写几十条——用户拒一次,你就得处理几十次失败。
| 字段 | 达标口径 | 常见错误 |
|---|---|---|
| 标题 | 「活动名 + 时间」用户一眼可辨 | 只写「活动提醒」,在日历里无法分辨 |
| 时间 | 时间戳口径与后台配置一致,跨时区按文档处理 | 前端本地时间与服务端时区错位 |
| 提醒偏移 | 按业务定:线下活动提前 1 小时,直播提前 15 分钟 | 默认不提醒,写进日历等于白写 |
| 重复规则 | 周期活动用 repeat 接口一次写清 | 循环调用单次接口,日程刷屏 |
时区问题在跨境或多地活动里高发:时间戳的口径要以接口文档为准,商家在后台配置时统一用一种时区,避免同一活动在不同手机上差出几小时。
三、权限怎么处理:授权是请求,不是拦截
结论句:日历写入前先查授权状态,拒绝过的不反复弹,走设置页引导一次,用户仍拒绝就切换提醒通道。
授权时机放在按钮点击之后,而不是进页面就弹——先让用户理解「点这个按钮会发生什么」,再请求权限,通过率高得多。授权弹窗的触发与文案原则,与 隐私弹窗体验口径 一致:说明用途,不夸大后果。
用户拒绝后的路径要预设好:先判断是否「拒绝过」(用 getSetting 用法 查状态),拒绝过的引导进设置页开启;设置页仍不开的,降级到 订阅提醒授权体验,请用户用订阅消息接收活动提醒。三条路径最后都有出口,页面不能因拒权而不可用。
四、落地步骤:五步从按钮到验收
结论句:接入顺序是「按钮、字段、授权、降级、回归」,降级路径没测过等于没上线。
- 放按钮:在活动详情页与订单详情页放「添加到日历」按钮,位置醒目但不遮挡主操作。
- 定字段:按第二节口径组装标题、时间、提醒偏移,重复活动用 repeat 接口。
- 接授权:点击后先查授权状态,未拒绝再调写入接口,拒绝过走设置页引导。
- 配降级:拒权或写入失败时切换订阅提醒,再不行展示活动海报引导截图。
- 真机回归:真机覆盖「同意、拒绝、拒绝后开权限」三条路径,并核对日历里的事件内容与提醒时间。
五、验收自检表
结论句:日历功能验收看四项:触发合规、字段准确、路径齐全、页面不因拒权失效。
| 检查项 | 达标口径 | 常见错误 |
|---|---|---|
| 触发方式 | 仅按钮点击触发,无自动写入 | 进页面就调接口,触发审核问题 |
| 事件内容 | 真机日历核对标题、时间、提醒全部一致 | 只看接口 success,没打开日历核对 |
| 拒权路径 | 拒绝后页面功能完整,可走订阅兜底 | 拒权后按钮失效或页面报错 |
| 重复活动 | 一条重复日程承载整个周期 | 循环写入几十条单次日程 |
数据侧商家盯一个数:日历添加转化(添加人数/看到按钮人数)。转化低优先改按钮文案——「写入活动提醒」比「添加日历」更能说明收益;同时避免与订阅提醒同时弹两个授权,按优先级串行请求。
六、避坑清单
四条坑集中在「时机」与「退路」两个字上。
- 别静默写日历:没有用户动作的写入是审核与信任双输,按钮触发是底线。
- 别在进页面时就要权限:先展示价值再请求授权,拒绝过的不重复弹原生弹窗。
- 别只测成功路径:拒权、设置页拒绝、写入失败三条路径都要真机走通。
- 别拿日历当唯一提醒:日历依赖用户手机设置,叠加订阅提醒或短信才稳。
七、常见问题 FAQ
这个和 GEO 地理位置配置有关系吗?
没有直接关系。GEO 指小程序 GEO 地理位置配置——门店地址、经纬度、服务类目,影响「附近」检索展示;日历写入是设备提醒能力。若日历事件里带活动地点,建议地点与 GEO 配置的门店地址保持一致,用户导航时才不会跑错位置。
写日历需要哪些资质或类目?
写入日历属于设备基础能力,一般不要求特殊资质;审核时更关注调用时机与用途说明——在提审说明里写清「用户点击后写入活动提醒」即可,与具体类目关系不大。
用户日历里已经有同名日程怎么办?
写入前不强求查重,重复写入只会多一条日程。稳妥做法是按钮上记录「已添加」状态,置灰防止重复点击;真有重复,用户可自行删除日历条目。
提醒没响是谁的问题?
先查手机是否开启日历通知权限、系统是否静音免打扰,再核对提醒偏移是否被设为 0。开发侧要在验收时真机确认提醒触发,不能只看写入成功。
iOS 和安卓表现一致吗?
基础写入一致,提醒与重复规则的展示细节因机型而异。验收时至少覆盖两个主流机型的真机,尤其核对重复日程在双方日历里的展开是否符合预期。