apicloud 消息推送與接收
阿新 • • 發佈:2019-01-19
odin community 記得 參考 ppk 用戶登錄 androi 發送通知 apk
待解決的問題,如下:
在使用apicloud 的時候我們,在開發用戶登錄的時候可能會遇到這樣的問題,當有2個設備a,b同事使用的app的時候並且是同一個人登錄,我們需要去做判斷,即大家常說的單點登錄。
解決辦法:
這裏我們需要有幾個重點的事情要去做,比如現在有個用戶Q同時擁有2個手機a,b
- 帳號的時候固定的,唯一變化的是設備,這裏我們需要記錄一個token或者是設備ID,apicloud的api對象裏提供了這2個全局屬性,可以獲取到,我這邊使用設備ID記錄(需要註意的時候安卓平臺設備id是唯一的,但是ios如果重新安裝了app那麽會發生改變),把獲取到的設備ID保存到數據庫用戶表中,這樣,當登錄的設備發生改變時,我們就可以及時通知
- 那麽新問題來了,如果通知用戶?一般情況下,如果我們搭建了自己的服務器的話,我們可以自己來實現推送,這裏還是主要說沒有怎麽辦(使用apicloud的一般都是個人開發者或者小公司,所有自己搭建服務器還不如使用數據雲,花點小錢~~個人觀點個人觀點),官網提供的模塊關於推送模塊有許多,但是大多數並不支持自己動態發送推送,想要推送通知或者消息都要到具體的官網上進行推送(要麽就是要你沖會員,比如個推),還好的是官網提供了數據雲推送API,具體地址可以參考(apicloud推送通知咋整 ) ,參考官網就可以了
主要幾個地方需要註意:
- 使用官網的推送功能時需要綁定模塊 push
- apk必須是使用雲編輯的正式版
- 在生成appKey的時候,記得要使用sha1進行編碼,貼一下實例如下,還有幾個地方大家要知道的,url是固定官網的地址(因為是人家的服務器嘛~),在配合push模塊提供的bind()、setListener()函數,我們就可以使用單推並接收了,最終在setListener裏編寫具體邏輯,提供手機設備a:“你的設備被別人登錄拉!!”
// 發送通知 function push() { var now = Date.now(); var appKey = SHA1("A60926*******" + "UZ" + "*******-*******-*******-*******-*******" + "UZ" + now) + "." + now; api.ajax({ url: ‘https://p.apicloud.com/api/push/message‘, method: "post", headers: { "X-APICloud-AppId": "A609*******", "X-APICloud-AppKey": appKey, "Content-Type": "application/json" }, dataType: "json", data: { "body": { "title": "消息標題h1234", "content": "消息內容ll", "type": 1, //– 消息類型,1:消息 2:通知 "platform": 2, //0:全部平臺,1:ios, 2:android } } }, function(ret, err) { //coding... alert(JSON.stringify(ret)) alert(JSON.stringify(err)) }); }
apicloud 消息推送與接收