對極光推送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的哪一些用戶。

還有其它的使用場景可以在評論區提出來,一般都能用免費的結合分組、別名、標籤達到效果。

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