背景:小程序嵌入H5页面,H5按钮拉起订阅授权弹框
结论:H5按钮点击,统一跳转到小程序授权页面。授权页面点击按钮,才能拉起授权弹框。
一、订阅消息授权
一次性订阅消息和长期性订阅消息(医疗,教育等)。
- 次数:订阅消息授权弹框,用户允许一次(不勾选始终允许),次数+1,能收到1次(服务通知的形式)。弹框允许操作50次,可以收到50次消息。
- 次数:订阅消息授权弹框,勾选始终允许,允许一次,次数+1,能收到1次(服务通知的形式)。
- 弹框内容,是对应模板id的title。
后续触发弹框,无感知(弹框不弹出来,默认走弹框中允许按钮的逻辑)。触发几次弹框(不弹,默认走允许的逻辑),就能收到几次消息(虽然无感知,但必须触发,次数才能增加)
二、订阅消息授权与H5交互
- 触发弹框:由于消息授权触发必须是小程序原生事件(用户主动行为),因此H5中按钮无法拉起消息授权弹框。
解决:H5按钮跳转到统一授权页面。用户点击统一授权页面的按钮,才能调起弹框。
- 次数问题:由于一次订阅消息次数问题,导致H5页面每次都要跳转到授权页面弹框,以保证服务通知中能收到多次。
- H5给微信发消息,非实时的,小程序只在(跳转,销毁,分享时拿到H5的信息)。
- 消息授权需要真机测才能弹出,开发工具中无法弹出。
三、消息授权开关
- 小程序…>设置>授权开关,小程序getSetting获取mainSwitch开关。开启状态:才跳转授权页;否则不跳转。
- H5无法实时获取开关状态,只能跳授权页。
四、设备信息api对微信版本
问题:8.0.3版本的微信,切换手机号授权出错,没反应(登录后无法跳转到首页)。
解决:8.0.3版本,对于wx.getDeviceInfo不友好,抛异常。修改成wx.getSystemInfoSync可以。
五、经纬度授权
位置授权放到登录后,弹框出现太慢。调整到进入登录页,先弹位置授权,后登录授权。