java --推送
2019獨角獸企業重金招聘Python工程師標準>>>
最近工程做完了,關于推送做個總結
公司用的是umeng推送,關于umneg推送的介紹,請移步官方文檔。
使用umeng推送步驟
1.添加jar包
公司使用的maven,所以將如下代碼添加到pom.xml文件中
????????<dependency><groupId>com.umeng.message</groupId><artifactId>push</artifactId><version>0.0.1</version></dependency>2.添加成功,如下圖
3.實現部分代碼如下
/**????程序名?????SendPush.java程序功?????推送作成者??????????????????xxx作成日期????2015-11-25======================修改履歷======================項目名????????????????????狀態????????????作成者????????作成日期--------------------------------------------------caren????????????????新規????????????xxx????????2015-11-25=================================================*/ package?com.cheqiren.caren.util;import?net.sf.json.JSONObject;import?com.cheqiren.caren.model.SendMsg;import?push.android.AndroidBroadcast; import?push.android.AndroidUnicast; import?push.ios.IOSBroadcast; import?push.ios.IOSUnicast;public?class?SendPush?{private?static?final?String?iosAppKey?=?"56274627e0f55ad9f9002443";private?static?final?String?iosAppMasterSecret?=?"lt63hy4kdmkshlxsr6mehyj1qnxftgbj";private?static?final?String?androidAppKey?=?"5652a952e0f55a772c0003b3";private?static?final?String?androidAppMasterSecret?=?"x3ae69jkhvi68mziobvcp2wtbr0cs97t";/***?方法名????????androidBroadcast(SendMsg?androidMsg)*?方法功能????????android廣播*?@param?????????androidMsg*?@return*/public?static?boolean?androidBroadcast(SendMsg?androidMsg){AndroidBroadcast?broadcast?=?new?AndroidBroadcast();boolean?result?=?false;broadcast.setAppMasterSecret(androidAppMasterSecret);String?timestamp?=?Integer.toString((int)(System.currentTimeMillis()?/?1000));try{//?必填?應用唯一標識broadcast.setPredefinedKeyValue("appkey",?androidAppKey);//?必填?時間戳,10位或者13位均可,時間戳有效期為10分鐘broadcast.setPredefinedKeyValue("timestamp",?timestamp);//?必填?消息發送類型broadcast.setPredefinedKeyValue("type",?"broadcast");//?必填?消息類型?notification-通知,message-消息broadcast.setPredefinedKeyValue("display_type",?"notification");//?必填?通知欄提示文字broadcast.setPredefinedKeyValue("ticker",?androidMsg.getTicker());//?必填?通知標題broadcast.setPredefinedKeyValue("title",?androidMsg.getTitle());//?必填?通知文字描述?broadcast.setPredefinedKeyValue("text",?androidMsg.getSendMessage());//?點擊"通知"的后續行為broadcast.setPredefinedKeyValue("after_open",?"go_custom");JSONObject?jsonObject?=?JSONObject.fromObject(androidMsg);broadcast.setPredefinedKeyValue("custom",?jsonObject.toString());//?可選?發送消息描述,建議填寫。broadcast.setPredefinedKeyValue("description",?androidMsg.getDescription());//?可選?正式/測試模式。測試模式下,廣播/組播只會將消息發給測試設備broadcast.setPredefinedKeyValue("production_mode",?"true");result?=?broadcast.send();}catch(Exception?e){e.printStackTrace();}return?result;}/***?方法名????????androidUnicast(SendPushInfo?androidMsg,String?deviceTokens)*?方法功能????????android單播*?@param?????????androidMsg*?@param?????????deviceTokens*?@return*/public?static?boolean?androidUnicast(SendMsg?androidMsg,String?deviceTokens){AndroidUnicast?unicast?=?new?AndroidUnicast();boolean?result?=?false;unicast.setAppMasterSecret(androidAppMasterSecret);String?timestamp?=?Integer.toString((int)(System.currentTimeMillis()?/?1000));try{//?必填?應用唯一標識unicast.setPredefinedKeyValue("appkey",?androidAppKey);//?必填?時間戳,10位或者13位均可,時間戳有效期為10分鐘unicast.setPredefinedKeyValue("timestamp",?timestamp);//?必填?消息發送類型unicast.setPredefinedKeyValue("type",?"unicast");//?必填?消息類型?notification-通知,message-消息unicast.setPredefinedKeyValue("display_type",?"notification");//?必填?通知欄提示文字unicast.setPredefinedKeyValue("ticker",?androidMsg.getTicker());//?必填?通知標題unicast.setPredefinedKeyValue("title",?androidMsg.getTitle());//?必填?通知文字描述?unicast.setPredefinedKeyValue("text",?androidMsg.getSendMessage());//可選?設備唯一表示unicast.setPredefinedKeyValue("device_tokens",?deviceTokens);//?點擊"通知"的后續行為unicast.setPredefinedKeyValue("after_open",?"go_custom");JSONObject?jsonObject?=?JSONObject.fromObject(androidMsg);unicast.setPredefinedKeyValue("custom",?jsonObject.toString());//?可選?發送消息描述,建議填寫。unicast.setPredefinedKeyValue("description",?androidMsg.getDescription());//?可選?正式/測試模式。測試模式下,廣播/組播只會將消息發給測試設備unicast.setPredefinedKeyValue("production_mode",?"true");result?=?unicast.send();}catch(Exception?e){e.printStackTrace();}return?result;}/***?方法名????????androidListcast(SendMsg?androidMsg,String?deviceTokens)*?方法功能????????android列播*?@param?????????androidMsg*?@param?????????deviceTokens*?@return*/public?static?boolean?androidListcast(SendMsg?androidMsg,String?deviceTokens){AndroidUnicast?unicast?=?new?AndroidUnicast();boolean?result?=?false;unicast.setAppMasterSecret(androidAppMasterSecret);String?timestamp?=?Integer.toString((int)(System.currentTimeMillis()?/?1000));try{//?必填?應用唯一標識unicast.setPredefinedKeyValue("appkey",?androidAppKey);//?必填?時間戳,10位或者13位均可,時間戳有效期為10分鐘unicast.setPredefinedKeyValue("timestamp",?timestamp);//?必填?消息發送類型unicast.setPredefinedKeyValue("type",?"listcast");//?必填?消息類型?notification-通知,message-消息unicast.setPredefinedKeyValue("display_type",?"notification");//?必填?通知欄提示文字unicast.setPredefinedKeyValue("ticker",?androidMsg.getTicker());//?必填?通知標題unicast.setPredefinedKeyValue("title",?androidMsg.getTitle());//?必填?通知文字描述?unicast.setPredefinedKeyValue("text",?androidMsg.getSendMessage());//可選?設備唯一表示unicast.setPredefinedKeyValue("device_tokens",?deviceTokens);//?點擊"通知"的后續行為unicast.setPredefinedKeyValue("after_open",?"go_custom");JSONObject?jsonObject?=?JSONObject.fromObject(androidMsg);unicast.setPredefinedKeyValue("custom",?jsonObject.toString());//?可選?發送消息描述,建議填寫。unicast.setPredefinedKeyValue("description",?androidMsg.getDescription());//?可選?正式/測試模式。測試模式下,廣播/組播只會將消息發給測試設備unicast.setPredefinedKeyValue("production_mode",?"true");result?=?unicast.send();}catch(Exception?e){e.printStackTrace();}return?result;}/***?方法名????????iosBroadcast(SendMsg?iosMsg)*?方法功能????????ios廣播*?@param?????????iosMsg*?@return*/public?static?boolean?iosBroadcast(SendMsg?iosMsg){IOSBroadcast?broadcast?=?new?IOSBroadcast();boolean?result?=?false;broadcast.setAppMasterSecret(iosAppMasterSecret);String?timestamp?=?Integer.toString((int)(System.currentTimeMillis()?/?1000));try{//?必填?應用唯一標識broadcast.setPredefinedKeyValue("appkey",?iosAppKey);//?必填?時間戳,10位或者13位均可,時間戳有效期為10分鐘broadcast.setPredefinedKeyValue("timestamp",?timestamp);//?必填?消息發送類型broadcast.setPredefinedKeyValue("type",?"broadcast");//?必填broadcast.setPredefinedKeyValue("alert",?iosMsg.getSendMessage());broadcast.setPredefinedKeyValue("sound",?"default");//?可選?發送消息描述,建議填寫。broadcast.setPredefinedKeyValue("description",?iosMsg.getDescription());//?可選?正式/測試模式。測試模式下,廣播/組播只會將消息發給測試設備broadcast.setPredefinedKeyValue("production_mode",?"true");//?點擊"通知"的后續行為JSONObject?jsonObject?=?JSONObject.fromObject(iosMsg);broadcast.setCustomizedField("custom",?jsonObject.toString());result?=?broadcast.send();}catch(Exception?e){e.printStackTrace();}return?result;}/***?方法名????????iosUnicast(SendMsg?iosMsg,String?deviceTokens)*?方法功能????????ios單播*?@param?????????iosMsg*?@param?????????deviceTokens*?@return*/public?static?boolean?iosUnicast(SendMsg?iosMsg,String?deviceTokens){IOSUnicast?unicast?=?new?IOSUnicast();boolean?result?=?false;unicast.setAppMasterSecret(iosAppMasterSecret);String?timestamp?=?Integer.toString((int)(System.currentTimeMillis()?/?1000));try{//?必填?應用唯一標識unicast.setPredefinedKeyValue("appkey",?iosAppKey);//?必填?時間戳,10位或者13位均可,時間戳有效期為10分鐘unicast.setPredefinedKeyValue("timestamp",?timestamp);//?必填?消息發送類型unicast.setPredefinedKeyValue("type",?"unicast");//?必填unicast.setPredefinedKeyValue("alert",?iosMsg.getSendMessage());unicast.setPredefinedKeyValue("sound",?"default");//可選?設備唯一表示unicast.setPredefinedKeyValue("device_tokens",?deviceTokens);//?可選?發送消息描述,建議填寫。unicast.setPredefinedKeyValue("description",?iosMsg.getDescription());//?可選?正式/測試模式。測試模式下,廣播/組播只會將消息發給測試設備unicast.setPredefinedKeyValue("production_mode",?"true");//?點擊"通知"的后續行為JSONObject?jsonObject?=?JSONObject.fromObject(iosMsg);unicast.setCustomizedField("custom",?jsonObject.toString());result?=?unicast.send();}catch(Exception?e){e.printStackTrace();}return?result;}/***?方法名????????iosGroupcast(SendMsg?iosMsg,String?deviceTokens)*?方法功能????????ios組播*?@param?????????iosMsg*?@param?????????deviceTokens*?@return*/public?static?boolean?iosListcast(SendMsg?iosMsg,String?deviceTokens){IOSUnicast?unicast?=?new?IOSUnicast();boolean?result?=?false;unicast.setAppMasterSecret(iosAppMasterSecret);String?timestamp?=?Integer.toString((int)(System.currentTimeMillis()?/?1000));try{//?必填?應用唯一標識unicast.setPredefinedKeyValue("appkey",?iosAppKey);//?必填?時間戳,10位或者13位均可,時間戳有效期為10分鐘unicast.setPredefinedKeyValue("timestamp",?timestamp);//?必填?消息發送類型unicast.setPredefinedKeyValue("type",?"listcast");//?必填unicast.setPredefinedKeyValue("alert",?iosMsg.getSendMessage());unicast.setPredefinedKeyValue("sound",?"default");//可選?設備唯一表示unicast.setPredefinedKeyValue("device_tokens",?deviceTokens);//?可選?發送消息描述,建議填寫。unicast.setPredefinedKeyValue("description",?iosMsg.getDescription());//?可選?正式/測試模式。測試模式下,廣播/組播只會將消息發給測試設備unicast.setPredefinedKeyValue("production_mode",?"true");//?點擊"通知"的后續行為JSONObject?jsonObject?=?JSONObject.fromObject(iosMsg);unicast.setCustomizedField("custom",?jsonObject.toString());result?=?unicast.send();}catch(Exception?e){e.printStackTrace();}return?result;} }4.調用部分代碼如下
????????????//?推送類型?單播String?deviceTokens?=?getDeviceTokens(receiveUserId);boolean?sendFlagAndroid?=?SendPush.androidUnicast(record,?deviceTokens);boolean?sendFlagIOS?=?SendPush.iosUnicast(record,?deviceTokens);if(!sendFlagAndroid?&&?!sendFlagIOS){//?發送失敗resInt?=?0;record.setSendResult(1);sendMsgMapper.updateByPrimaryKeySelective(record);}else{//?發送成功resInt?=?1;record.setSendResult(0);sendMsgMapper.updateByPrimaryKeySelective(record);}轉載于:https://my.oschina.net/u/2312022/blog/603378
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: NSIndexPath类
- 下一篇: Ethernet IP TCP UDP