日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【极光推送】给指定用户发送消息

發(fā)布時間:2025/3/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【极光推送】给指定用户发送消息 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

如果你還沒有搭建極光推送服務(wù)器,建議你根據(jù)情況,先從服務(wù)器搭建開始。

?

前文標(biāo)題:

《【極光推送】jpush服務(wù)端開發(fā)詳盡過程》

鏈接:

http://ningmengjiabing.blog.163.com/blog/static/20484719820163194218972/

?

?

如果你已經(jīng)完成推送服務(wù)器的搭建,最后在驗(yàn)證推送功能時,返回的options大致格式應(yīng)該如下所示:

{"sendno":1525934458,"apns_production":false}

?

出現(xiàn)這個東東的原因:

1.?我們并未在極光推送(https://www.jpush.cn的控制臺為Android以及iOS應(yīng)用進(jìn)行應(yīng)用登記信息。

?

正文

?

一、 控制臺操作

1.?在控制臺登記相關(guān)應(yīng)用配置信息。

?

二、?客戶端集成

1.?客戶端上需要增加Android版本或是iOS版本的SDK。下載地址:https://www.jpush.cn/common/products。位置如下圖所示:

?1.?你可以在極光推送官方文檔中,找到相關(guān)平臺的SDK集成方式,鏈接為:http://docs.jpush.io/

2.?具體的SDK集成方式再次不做贅述,因?yàn)楣P者不是專業(yè)的移動開發(fā)人士,甚至連服務(wù)器開發(fā)也是臨時湊熱鬧搭把手而已。

?

三、?客戶端開發(fā)

想要實(shí)現(xiàn)給指定人群推送消息的功能,首先要對推送人群方式進(jìn)行一個簡單的了解。深入的內(nèi)容可以參考社區(qū)中極光推送博客的《推送人群的選擇 – 技術(shù)篇》文章,地址是http://blog.jpush.cn/push_audience_tech/

?

這里只是對具體場景應(yīng)用簡單描述,設(shè)計一下。

我們的消息分為三類,一類是通知消息,給所有人。另一類是具體的工作安排,給某一部門的人。還有一類是具體的個人消息,如給領(lǐng)導(dǎo)發(fā)請假通知等。所以我們最終決定使用的方式包括一下方式:

1) 廣播:顧名思義就是給所有人群發(fā)消息

2) 別名(alias):給指定id的終端設(shè)備發(fā)送消息。別名需要客戶端進(jìn)行設(shè)置。

3) 標(biāo)簽(tag):分組發(fā)送消息,理解起來應(yīng)該類似于微信建了一個群聊的趕腳。標(biāo)簽需要客戶端進(jìn)行設(shè)置。

?

客戶端開發(fā)步驟簡述

1. 集成SDK(之前已經(jīng)完成)

2. 啟動后,到服務(wù)器上注冊,并獲取注冊IDRegistrationID

3. 調(diào)用Method -?setAliasAndTags (with?Callback)函數(shù)完成別名和標(biāo)簽的設(shè)置。

?

1:這里,我們應(yīng)用的別名就是員工ID,標(biāo)簽就是部門ID。以此來進(jìn)行分類推送

2:具體的參數(shù)定義可參照官方文檔《別名與標(biāo)簽 API》一文。鏈接地址為:http://docs.jpush.cn/pages/viewpage.action?pageId=557241

3:只有call back返回0時才設(shè)置成功,其他結(jié)果均會讓服務(wù)器返回1011錯誤。

?

四、?服務(wù)端開發(fā)

1.?設(shè)置推送平臺

setPlatform(Platform.all()) //設(shè)置所有平臺

setPlatform(Platform.android())//設(shè)置android

setPlatform(Platform.android_ios())//設(shè)置AndroidiOS

setPlatform(Platform.ios())//設(shè)置iOS

?

2.?設(shè)置受眾(收到推送消息的人群)

setAudience(Audience.all())設(shè)置所有受眾

setAudience(Audience.tag("tag1""tag2"))//設(shè)置tagtag1tag2的受眾,群發(fā)

setAudience(AudienceTarget.alias("alias1", "alias2")) //設(shè)置別名aliasalias1alias2的受眾,單發(fā)

1: 更多的發(fā)送方式,可以到官網(wǎng)上去找文檔,可以這是多個條件混合發(fā)送。由于本項目中沒有那么復(fù)雜的應(yīng)用需求,所以此處省略不提。

?

3.?設(shè)置通知方式

setNotification(Notification.alert(ALERT)) //設(shè)置通用通知,以alert方式提醒

setNotification(Notification.android(ALERT, TITLE, null))//增加標(biāo)題

setNotification(Notification.newBuilder()

???????????????????.addPlatformNotification(IosNotification.newBuilder()

???????????????????.setAlert(ALERT)

????????????????? ?.setBadge(5)

????????????????????.setSound("happy")

????????????????????.addExtra("from", "JPush")

????????????????????.build())

????????????????????.build())//不管什么東西,iOS的總要復(fù)雜一些。

1: 可以不設(shè)置通知方式,讓其使用默認(rèn)的通知方式進(jìn)行消息推送

?

4.?設(shè)置通知內(nèi)容

setMessage(Message.content(MSG_CONTENT))//MSG_CONTENT中就是通知內(nèi)容。

5.?設(shè)置控制選項

setOptions(M\options(sendno, time_to_live, override_msg_id, apns_productionbig_push_duration))

?

當(dāng)前包含如下幾個可選項:

sendno?int?可選?推送序號?純粹用來作為 API 調(diào)用標(biāo)識,API 返回時被原樣返回,以方便 API 調(diào)用方匹配請求與返回。

time_to_live?int?可選?離線消息保留時長?推送當(dāng)前用戶不在線時,為該用戶保留多長時間的離線消息,以便其上線時再次推送。默認(rèn) 86400 1 天),最長 10 天。設(shè)置為 0 表示不保留離線消息,只有推送當(dāng)前在線的用戶可以收到。

override_msg_id?long?可選?要覆蓋的消息ID?如果當(dāng)前的推送要覆蓋之前的一條推送,這里填寫前一條推送的 msg_id 就會產(chǎn)生覆蓋效果,即:1)該 msg_id 離線收到的消息是覆蓋后的內(nèi)容;2)即使該 msg_id Android 端用戶已經(jīng)收到,如果通知欄還未清除,則新的消息內(nèi)容會覆蓋之前這條通知;覆蓋功能起作用的時限是:1 天。 如果在覆蓋指定時限內(nèi)該 msg_id 不存在,則返回 1003 錯誤,提示不是一次有效的消息覆蓋操作,當(dāng)前的消息不會被推送。

apns_production?boolean?可選?APNs是否生產(chǎn)環(huán)境? True 表示推送生產(chǎn)環(huán)境,False 表示要推送開發(fā)環(huán)境; 如果不指定則為推送生產(chǎn)環(huán)境。

注:JPush 官方 API LIbrary (SDK) 默認(rèn)設(shè)置為推送 “開發(fā)環(huán)境”。

big_push_duration?int?可選?定速推送時長(分鐘)?又名緩慢推送,把原本盡可能快的推送速度,降低下來,在給定的 n 分鐘內(nèi),均勻地向這次推送的目標(biāo)用戶推送。最大值為 1440。未設(shè)置則不是定速推送。

?

6.?開始推送

sendPush(PushPayload類型參數(shù))

?

7.?獲取返回結(jié)果

PushResult類型參數(shù),可以回去到返回值。結(jié)果大致格式如下:

{"msg_id":3270259240,"sendno":34919015}

?

8. 附上兩段分標(biāo)簽以及分別名推送的函數(shù)代碼

//description:自定義推送函數(shù)--分組推送
//createTime: 04-21
//author: xk
public static PushPayload buildPushObject_android_and_iosByTag(String tag,String title,String content) {
return PushPayload.newBuilder()
.setPlatform(Platform.android_ios())
.setAudience(Audience.tag(tag))
.setNotification(Notification.newBuilder()
.setAlert(content)
.addPlatformNotification(AndroidNotification.newBuilder()
.setTitle(title).build())
.addPlatformNotification(IosNotification.newBuilder()
.incrBadge(1)
.addExtra(title, content).build())
.build())
.build();
}

//description:自定義推送函數(shù)--按別名推送
//createTime: 04-21
//author: xk
public static PushPayload buildPushObject_android_and_iosByAlias(String alias,String title,String content) {
return PushPayload.newBuilder()
.setPlatform(Platform.android_ios())
.setAudience(Audience.alias(alias))
.setNotification(Notification.newBuilder()
.setAlert(content)
.addPlatformNotification(AndroidNotification.newBuilder()
.setTitle(title).build())
.addPlatformNotification(IosNotification.newBuilder()
.incrBadge(1)
.addExtra(title, content).build())
.build())
.build();
}

?

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

轉(zhuǎn)載于:https://www.cnblogs.com/JOEH60/p/5780129.html

總結(jié)

以上是生活随笔為你收集整理的【极光推送】给指定用户发送消息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。