对极光推送SDK在单个服务器的多端多APP推送需求的应用 - APP视角(免费版)

在使用极光推送的时候一般按照文档一步一步来就可以了,但是前段时间接到一个需求,需要在一个后台服务器对IOS、Android端的多个APP进行推送,并且有多种推送情况:

	只推一个端的单个APP。
	只推一个端的多个APP。
	推两个端的单个APP。
	推两个端的多个APP。

我们都知道,对于前端的每一个APP都需要在极光后台生成一个项目,并且都有独立的APP KEY,我司的后台为.net,一开始的策略是IOS、Android将各自生成的多个项目的推送所需信息都给到后台人员,后台人员使用极光服务器SDK逐个推送,首先我们抛开这种推送方式是否能成功不说(事实证明也确实是失败的),实现方式也很繁琐。失败的原因我的猜想是因为服务器SDK推送相关的为单例模式,每次推送的时候只有第一次推的APP KEY能成功,后续的推送APP端均收不到,但是由于我不是后台开发,真正的原因没有去深究。于是我又开始在极光社区、文档中查找其它方案。

经过一番查找,让我找到了极光的一个分组推送API:
在这里插入图片描述
分组推送的含义是:在极光后台-应用管理生成多个项目,再在分组管理中创建分组,将需要的项目加入到同一个分组:
在这里插入图片描述
在这里插入图片描述
将分组的Group key、Group Master Secret给到后台,后台就可以使用这一个分组的key推送到改分组配置的所有APP。
然而到了这一步还没有万事大吉,后台在集成SDK的时候,一般SDK中自带的推送BaseUrl都是单个推送的,至少在我司.net后台使用的c#SDK是这样的,这样会出现使用Group推送时APP收不到的情况,我一番查找下在极光社区找到了问题所在:
在这里插入图片描述
后台人员使用服务器SDK进行分组推送时需要修改推送的BaseUrl。

现在已经能够成功推送的,然后我们来测试文首提到的几种使用场景要如何利用极光SDK 的API达到效果,测试之前我们先要了解极光推送中的几个概念和限制:
1、别名与标签,通过客户端SDK设置。

别名:一个别名可以对应多个用户,但是一个用户只能指定一个别名(仔细想想,这并不矛盾),同一个别名可以绑定最多10个设备。
标签:给用户设置标签,同一个用户可以设置多个标签。

2、RegisterId,对于极光来说,这就标识着一个用户,通过客户端SKD集成后自动生成,相当于你这个APP在某一个设备上的唯一标识。

使用同一个APP key在不同设备注册,该值不同。
使用同一个APP key在同一设备多次注册(多次卸载重装),该值相同。
使用不同APP key在同一设备注册,该值不同。

3、APP key,使用极光开发者平台生成。

注意,这个值时不需要包名的,只需要填写应用名,这样你不同平台(ios/Android)、不同APP都可以使用同一个APP key,这也是为什么我在第二点RegisterId要使用APP key来解释

有了这些概念后我们再来结合文首的场景来测试:
1、只推一个端的单个APP

只有这种需求的只要使用单个推送的API即可。

2、只推一个端的多个APP

利用分组推送实现,结合别名或者标签推送固定的哪几个APP的哪一些用户。

3、推两个端的单个APP

这种也只需要使用单个推送API即可,服务器SDK中有按Android、IOS推送的API

4、推两个端的多个APP

利用分组推送实现,结合别名或者标签推送固定的哪几个APP的哪一些用户。

还有其它的使用场景可以在评论区提出来,一般都能用免费的结合分组、别名、标签达到效果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章