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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【个推】后端java开发

發(fā)布時間:2024/3/26 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【个推】后端java开发 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

申請應(yīng)用:

申請之后,我們開發(fā)人員需要拿到的是

?

開發(fā)步驟:

1.在pom文件中引入個推依賴

<!--個推--><dependency><groupId>com.gexin.platform</groupId><artifactId>gexin-rp-sdk-template</artifactId><version>4.0.0.16</version></dependency><dependency><groupId>com.gexin.platform</groupId><artifactId>gexin-rp-sdk-http</artifactId><version>4.0.1.17</version></dependency>

2.個推可以使用cid對個別用戶推送,也可以把cid綁定別名(客戶端工作),用別名進行推送,我這里使用別名進行推送

package com.dingyi.common.util;import com.alibaba.fastjson.JSONObject; import com.dingyi.common.Message.PushMessage; import com.dingyi.common.base.CommonConstant; import com.gexin.rp.sdk.base.IPushResult; import com.gexin.rp.sdk.base.impl.AppMessage; import com.gexin.rp.sdk.base.impl.SingleMessage; import com.gexin.rp.sdk.base.impl.Target; import com.gexin.rp.sdk.base.payload.APNPayload; import com.gexin.rp.sdk.base.uitls.AppConditions; import com.gexin.rp.sdk.exceptions.RequestException; import com.gexin.rp.sdk.http.IGtPush; import com.gexin.rp.sdk.template.NotificationTemplate; import com.gexin.rp.sdk.template.TransmissionTemplate; import com.gexin.rp.sdk.template.style.Style0; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool;import java.util.ArrayList; import java.util.List;@Component public class Getui2Util {private static Logger logger = LoggerFactory.getLogger(Getui2Util.class);private static String appId = "GI*************VqHPT4";private static String appKey = "7m*************iRvbMaA";private static String masterSecret = "CZ*************HMGWeW2";static String host = "http://sdk.open.api.igexin.com/apiex.htm";/*** 推送給特定ios/安卓用戶 注意:不是直接通知,需要客戶端處理** @param pushMessage* @param alias*/public void pushMessageToOne(PushMessage pushMessage, String alias) {IGtPush push = new IGtPush(host, appKey, masterSecret);TransmissionTemplate template = getTemplate(pushMessage);SingleMessage message = new SingleMessage();message.setOffline(true);// 離線有效時間,單位為毫秒,可選message.setOfflineExpireTime(24 * 3600 * 1000);message.setData(template);// 可選,1為wifi,0為不限制網(wǎng)絡(luò)環(huán)境。根據(jù)手機處于的網(wǎng)絡(luò)情況,決定是否下發(fā)message.setPushNetWorkType(0);Target target = new Target();target.setAppId(appId);//target.setClientId(CID.toString()); //使用cid來推送target.setAlias(alias);IPushResult ret = null;try {ret = push.pushMessageToSingle(message, target);} catch (RequestException e) {e.printStackTrace();ret = push.pushMessageToSingle(message, target, e.getRequestId());}if (ret != null) {System.out.println(ret.getResponse().toString());} else {System.out.println("服務(wù)器響應(yīng)異常");}}/*** 推送給特定安卓用戶 注意:ios接收不到** @param pushMessage* @param alias*/public void pushMessageToAndriod(PushMessage pushMessage, String alias) {IGtPush push = new IGtPush(host, appKey, masterSecret);NotificationTemplate template = notificationTemplate(pushMessage);SingleMessage message = new SingleMessage();message.setOffline(true);// 離線有效時間,單位為毫秒,可選message.setOfflineExpireTime(24 * 3600 * 1000);message.setData(template);// 可選,1為wifi,0為不限制網(wǎng)絡(luò)環(huán)境。根據(jù)手機處于的網(wǎng)絡(luò)情況,決定是否下發(fā)message.setPushNetWorkType(0);Target target = new Target();target.setAppId(appId);//target.setClientId(CID.toString());target.setAlias(alias);IPushResult ret = null;try {ret = push.pushMessageToSingle(message, target);} catch (RequestException e) {e.printStackTrace();ret = push.pushMessageToSingle(message, target, e.getRequestId());}if (ret != null) {System.out.println(ret.getResponse().toString());} else {System.out.println("服務(wù)器響應(yīng)異常");}}/*** 把信息推送給安卓app內(nèi)所有用戶** @param pushMessage*/public void pushMessageToApp(PushMessage pushMessage, String appTaskName) {IGtPush push = new IGtPush(host, appKey, masterSecret);//模版可以替換 這里不是透傳模版 ios收不到NotificationTemplate template = notificationTemplate(pushMessage);AppMessage message = new AppMessage();message.setData(template);message.setOffline(true);//離線有效時間,單位為毫秒,可選message.setOfflineExpireTime(24 * 1000 * 3600);//推送給App的目標用戶需要滿足的條件AppConditions cdt = new AppConditions();List<String> appIdList = new ArrayList<String>();appIdList.add(appId);message.setAppIdList(appIdList);//手機類型List<String> phoneTypeList = new ArrayList<String>();//省份List<String> provinceList = new ArrayList<String>();//自定義tagList<String> tagList = new ArrayList<String>();cdt.addCondition(AppConditions.PHONE_TYPE, phoneTypeList);cdt.addCondition(AppConditions.REGION, provinceList);cdt.addCondition(AppConditions.TAG, tagList);message.setConditions(cdt);//這個任務(wù)的名稱,不會被展示IPushResult ret = push.pushMessageToApp(message, appTaskName);System.out.println(ret.getResponse().toString());}/*** 安卓模版*/public NotificationTemplate notificationTemplate(PushMessage pushMessage) {NotificationTemplate template = new NotificationTemplate();// 設(shè)置APPID與APPKEYtemplate.setAppId(appId);template.setAppkey(appKey);// 透傳消息設(shè)置,1為強制啟動應(yīng)用,客戶端接收到消息后就會立即啟動應(yīng)用;2為等待應(yīng)用啟動template.setTransmissionType(1);template.setTransmissionContent("點擊啟動應(yīng)用");// 設(shè)置定時展示時間// template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");Style0 style = new Style0();// 設(shè)置通知欄標題與內(nèi)容style.setTitle(pushMessage.getTitle());style.setText(pushMessage.getMsg());// 配置通知欄圖標//style.setLogo("icon.png");// 配置通知欄網(wǎng)絡(luò)圖標//style.setLogoUrl("");// 設(shè)置通知是否響鈴,震動,或者可清除style.setRing(true);style.setVibrate(true);style.setClearable(true);template.setStyle(style);return template;}/*** ios/android透傳模版*/public static TransmissionTemplate getTemplate(PushMessage pushMessage) {TransmissionTemplate template = new TransmissionTemplate();template.setAppId(appId);template.setAppkey(appKey);template.setTransmissionContent(pushMessage.getMsg());template.setTransmissionType(2);APNPayload payload = new APNPayload();//在已有數(shù)字基礎(chǔ)上加1顯示,設(shè)置為-1時,在已有數(shù)字上減1顯示,設(shè)置為數(shù)字時,顯示指定數(shù)字payload.setAutoBadge("+1");payload.setContentAvailable(1);payload.setSound("default");//payload.setCategory("$由客戶端定義");//簡單模式APNPayload.SimpleMsg//payload.setAlertMsg(new APNPayload.SimpleAlertMsg("hello"));//字典模式使用APNPayload.DictionaryAlertMsgpayload.setAlertMsg(getDictionaryAlertMsg(pushMessage));// 添加多媒體資源/*payload.addMultiMedia(new MultiMedia().setResType(MultiMedia.MediaType.video).setResUrl("http://ol5mrj259.bkt.clouddn.com/test2.mp4").setOnlyWifi(true));*///需要使用IOS語音推送,請使用VoIPPayload代替APNPayload// VoIPPayload payload = new VoIPPayload();// JSONObject jo = new JSONObject();// jo.put("key1","value1");// payload.setVoIPPayload(jo.toString());//template.setAPNInfo(payload);return template;}/*** ios離線APNS配置** @return*/private static APNPayload.DictionaryAlertMsg getDictionaryAlertMsg(PushMessage pushMessage) {APNPayload.DictionaryAlertMsg alertMsg = new APNPayload.DictionaryAlertMsg();alertMsg.setBody(pushMessage.getMsg());//alertMsg.setActionLocKey("ActionLockey");//alertMsg.setLocKey("LocKey");//alertMsg.addLocArg("loc-args");//alertMsg.setLaunchImage("launch-image");// iOS8.2以上版本支持alertMsg.setTitle(pushMessage.getTitle());//alertMsg.setSubtitle("子標題");//alertMsg.setTitleLocKey("TitleLocKey");//alertMsg.addTitleLocArg("TitleLocArg");return alertMsg;}}

3.PushMessage類

public class PushMessage extends BaseModel {private String id;private String to;private String title;private String image;private String msg;private Date timestamp;private String readed;private String reached;//離線=offline ;在線=online ;系統(tǒng) = systemprivate String type;//0=文本; 1=圖片;2=音頻; 3=視頻; 4=簡歷; 5=職位; 6=約面; 7=房源; 8=求租 ;// 9=預約看房;10=名片; 20=招聘;22=租房;25=系統(tǒng);55=已讀未讀; 77=登錄消息; 99=actionprivate String msgtype;private String destination; }

?

客戶端接收不到通知的幾種可能:

1.andriod能接受消息,而ios不行,有可能模版選錯,ios只能接收透傳模板

2.關(guān)于透傳模版,在客戶端是沒有任何提示的,透傳消息個推SDK接收到后直接廣播給客戶端,不做任何處理,需要客戶端自己去處理。確認客戶端是否對透傳消息進行處理

?

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的【个推】后端java开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 麻豆视频在线观看免费 | 91大神在线免费观看 | 免费看欧美一级片 | 欧美xxxx日本和非洲 | 日本黄色动态图 | 天天狠天天透 | 国产一区二区三区免费在线观看 | 日本成人性爱 | 一区二区成人av | 久久久久久久久网站 | 丰满秘书被猛烈进入高清播放在 | 久久精品6 | 亚洲成人一区二区在线观看 | 捆绑凌虐一区二区三区 | 亚洲1234区 | 蜜桃久久精品 | 欧美美女在线观看 | 国产精品日韩精品欧美精品 | 精品视频在线免费看 | 无码国精品一区二区免费蜜桃 | 中文字幕乱码人妻无码久久 | 亚洲夜夜爱 | 亚洲免费一二三区 | 亚洲视频导航 | 国产高中女学生第一次 | 岛国色图| 日本xxxxxxxxx | 岛国精品一区二区 | 成人激情av| 午夜丁香网 | 日韩欧美亚洲国产 | 456av| 少妇高潮21p | 日韩毛片在线免费观看 | 免费中文字幕视频 | 欧美另类人妖 | 99热9| 日韩av电影网| 美女av免费看 | 乱色视频 | 日本韩国欧美一区二区 | 男生把女生困困的视频 | 一区二区三区亚洲视频 | 成年人国产 | 色女孩综合网 | 亲切的金子片段 | 精品国产高清在线观看 | 久久国产精品网站 | 精品国产乱码久久久久久蜜臀 | yy6080久久| 精品国产丝袜一区二区三区乱码 | 黄色一级片免费观看 | 日韩免费av网站 | 男女做爰猛烈高潮描写 | 国产精品老熟女一区二区 | 伊人网国产 | 黄色网址网站 | 欧美日韩国产亚洲沙发 | 美女脱了裤子让男人桶 | 日本一区二区高清免费 | 欧美亚州国产 | 久草五月 | 免费h片在线观看 | 老熟妇仑乱一区二区av | 色综合99久久久无码国产精品 | 在线观看免费www | 中文字幕人妻一区二区三区 | 欧美xxxx黑人 | 亚洲欧美另类在线视频 | 日韩视频在线免费播放 | 成年人在线免费观看视频网站 | 在线观看高清视频 | 金瓶风月在线 | 国产尤物视频 | 国产a视频免费观看 | 影音先锋中文字幕资源 | 人人草网 | 国产日韩欧美精品在线观看 | 亚洲免费三级 | 台湾三级伦理片 | 性高潮久久久久久 | 亚洲人女屁股眼交6 | 少妇又紧又色又爽又刺激视频 | 轻点好疼好大好爽视频 | 婷婷久久久久久 | 日本在线视频观看 | 国产av无码专区亚洲a∨毛片 | 成人免费无码大片a毛片抽搐色欲 | 性av免费 | 五月天婷婷丁香 | 一区二区三区欧美视频 | 亚洲一区二区三区四区在线 | 毛片一卡二卡 | 国产影视一区二区三区 | 成人网在线 | 黄色.com | 日韩欧美大片 | 日韩欧美大片在线观看 | 人人妻人人澡人人爽精品欧美一区 |