官方文档显示,订阅消息包括两种:
一次性订阅消息
一次性订阅消息用于解决用户使用小程序后,后续服务环节的通知问题。用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。
长期订阅消息
一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,我们提供了长期性订阅消息,用户订阅一次后,开发者可长期下发多条消息。
目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。
一般情况下,我们做的小程序都是不支持发送长期订阅消息的。一次性订阅消息,就是每次都需要用户订阅了以后,才可以发送一条消息给用户。
我们可以通过wx.requestSubscribeMessage() 来拉起订阅消息的授权:
如果用户选择了总是保持以上选择,不再询问。后续就不会拉起用户授权。
我们也可以通过wx.getSetting()来获取用户是否允许推送消息。
上面是wx.getSetting()的成功回调返回的数据;subscriptionsSetting里面就是用户订阅的信息的数据。用户勾选 “总是保持以上选择,不再询问” 之后,下次订阅调用 wx.requestSubscribeMessage 不会弹窗,保持之前的选择,修改选择需要打开小程序设置进行修改。