推送通知,使得开发者可以即时地向其应用程序的用户推送通知或者消息,与用户保持互动,从而有效地提高留存率,提升用户体验。平台提供整合了 Android 推送、iOS 推送的统一推送服务。
除了通过 iOS、Android SDK 做推送服务之外,你还可以通过 REST API 来发送推送请求。
使用推送服务前,需在相应应用的 云服务控制台 > 设置 > 安全中心 > 服务开关 开启推送服务,此开关有三分钟的延迟。
Installation 表示一个允许推送的设备的唯一标示,对应数据管理平台中的 _Installation 表。它就是一个普通的 LCObject,主要属性包括:
_Installation
_
-
=
deviceProfile
equals
ios
android
对应 云服务控制台 > 推送 > 推送记录 里的一条记录,表示一条推送消息,它包括下列属性:
[lc/ios/fcm/hms/mi/oppo/vivo/meizu]Successes
推送本质上是根据一个 query 条件来查询 _Installation 表里符合条件的设备,然后将消息推送给设备。因为 _Installation 是一个可以完全自定义属性的 Key-Value Object,因此可以实现各种复杂条件推送,例如频道订阅、地理位置信息推送、特定用户推送等。
对于 devices 和 successes 这两个属性,当 devices 值为 0 时,表示没有找到任何符合目标条件的设备,需要检查一下推送查询条件,这时没有设备能收到推送通知;当 devices 值不为 0 时,该值仅仅说明找到了这么多符合条件的设备,但并不保证这些设备都能收到推送通知,所以 successes 很可能是会小于 devices 的。特别是当查询出来的设备中含有大量的非活跃设备时,successes 可能会和 devices 有很大差距。
如果某个设备不想收到推送提醒,可以将 _Installation 表中相应安装对象的 valid 字段修改为 false。
valid
false
注意:我们只保留最近一周的推送记录,并会对过期的推送记录定时进行清理。推送记录清理和推送消息过期时间无关,也就是说即使推送记录被清理,没有过期的推送消息依然是有效的,目标用户依然是能够收到消息。推送过期时间设置请参考《推送 REST API 使用指南》的《过期时间和定时推送》一节。
请阅读Unity 推送开发指南。
请阅读iOS 推送开发指南。
由于 Android 系统权限控制越来越严,云服务自有通道的推送到达率受到影响。 因此,建议商用版应用使用我们的「混合推送」方案,该方案对接了国内主流厂商的不同接口,让开发者通过统一的 API 完成推送任务。 详见Android 混合推送开发指南。
如果想要使用云服务自有通道推送,请阅读Android 推送开发指南。
请阅读推送 REST API 使用指南。
JavaScript SDK 也提供了创建推送的接口,使用场景主要面向云引擎。 详见《云引擎常见问题解答》的《云引擎下如何通过 JavaScript SDK 创建推送?》。
推送通知服务总览
推送通知,使得开发者可以即时地向其应用程序的用户推送通知或者消息,与用户保持互动,从而有效地提高留存率,提升用户体验。平台提供整合了 Android 推送、iOS 推送的统一推送服务。
除了通过 iOS、Android SDK 做推送服务之外,你还可以通过 REST API 来发送推送请求。
使用推送服务前,需在相应应用的 云服务控制台 > 设置 > 安全中心 > 服务开关 开启推送服务,此开关有三分钟的延迟。
基本概念
Installation
Installation 表示一个允许推送的设备的唯一标示,对应数据管理平台中的
_Installation
表。它就是一个普通的 LCObject,主要属性包括:_
)、连字符(-
)、等号(=
)、汉字(中日韩统一表意文字)。deviceProfile
的值必须以字母开头,由大小写字母、数字和下划线组成的字符串,或为空值。deviceProfile 是特殊字段,只支持equals
查询。ios
、android
。Notification
对应 云服务控制台 > 推送 > 推送记录 里的一条记录,表示一条推送消息,它包括下列属性:
_Installation
表中符合查询条件且有效的总设备数。有效是指_Installation
表的 valid 字段为 true 且 updatedAt 字段时间在最近三个月以内。目标设备数可能会包含大量的非活跃用户(如已卸载 App 的用户),这部分用户可能无法收到推送。[lc/ios/fcm/hms/mi/oppo/vivo/meizu]Successes
等分别代表通过各渠道推送成功的设备数。_Installation
表的条件,符合这些查询条件的设备将接收本条推送消息。推送本质上是根据一个 query 条件来查询
_Installation
表里符合条件的设备,然后将消息推送给设备。因为_Installation
是一个可以完全自定义属性的 Key-Value Object,因此可以实现各种复杂条件推送,例如频道订阅、地理位置信息推送、特定用户推送等。对于 devices 和 successes 这两个属性,当 devices 值为 0 时,表示没有找到任何符合目标条件的设备,需要检查一下推送查询条件,这时没有设备能收到推送通知;当 devices 值不为 0 时,该值仅仅说明找到了这么多符合条件的设备,但并不保证这些设备都能收到推送通知,所以 successes 很可能是会小于 devices 的。特别是当查询出来的设备中含有大量的非活跃设备时,successes 可能会和 devices 有很大差距。
如果某个设备不想收到推送提醒,可以将
_Installation
表中相应安装对象的valid
字段修改为false
。注意:我们只保留最近一周的推送记录,并会对过期的推送记录定时进行清理。推送记录清理和推送消息过期时间无关,也就是说即使推送记录被清理,没有过期的推送消息依然是有效的,目标用户依然是能够收到消息。推送过期时间设置请参考《推送 REST API 使用指南》的《过期时间和定时推送》一节。
Unity 推送
请阅读Unity 推送开发指南。
iOS 推送
请阅读iOS 推送开发指南。
Android 推送
由于 Android 系统权限控制越来越严,云服务自有通道的推送到达率受到影响。 因此,建议商用版应用使用我们的「混合推送」方案,该方案对接了国内主流厂商的不同接口,让开发者通过统一的 API 完成推送任务。 详见Android 混合推送开发指南。
如果想要使用云服务自有通道推送,请阅读Android 推送开发指南。
使用 REST API 推送消息
请阅读推送 REST API 使用指南。
云引擎下通过 JavaScript SDK 创建推送
JavaScript SDK 也提供了创建推送的接口,使用场景主要面向云引擎。 详见《云引擎常见问题解答》的《云引擎下如何通过 JavaScript SDK 创建推送?》。