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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

极光推送JPush使用Java SDK开发

發布時間:2023/12/10 java 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 极光推送JPush使用Java SDK开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、極光推送是什么?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?極光推送消息介紹

上面是極光官方文檔的介紹說明,作為初次使用者。如果對于官方文檔解釋看不明白的,可以多去網上找一些通俗易懂的博客文章之類的,然后再去看官方文檔,最后再按需要進行集成調試和開發等。

簡單來說:極光推送是一個免費的開源的手機APP消息推送平臺(類似帥哥美女們常用的購物APP某寶、某東等,一些優惠券消息后臺推送到你們手機上)。它集成了包括:SDK給客戶端、JPush API給服務端、JPush Cloud服務器代理推送消息。一張圖看懂整個邏輯(極光官方):

android和ios的區別在于,ios需使用apple APNS server專用服務代理。(這可能是米國佬的專業獨裁吧)

二、使用Java SDK集成開發(服務端)

1、生成Appkey 和?MasterSecret?

關于Appkey 和?MasterSecret 的介紹,這里只作簡單說明:極光平臺推送到對應的注冊APP手機客戶端所需要的參數;創建測試用的Appkey和MasterSecret的步驟和操作介紹可以去官網取經,或查閱其他博客文章等,一般作為服務器后臺開發是不需要關心這個(客戶端androi、ios開發者負責創建)。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??AppKey和MasterSecret操作步驟

2、添加依賴jar包

筆者的項目使用的是SpringCloud微服務架構,自然使用的是Maven倉庫。所以,首先需要添加maven依賴

<dependency><groupId>cn.jpush.api</groupId><artifactId>jpush-client</artifactId><version>3.3.9</version></dependency>

版本以3.3.9為例,目前最新版本出到3.3.12了,一般不建議使用最新版本,因為最新版本的東西都不太穩定。

3、集成Java SDK推送方法JPush

//極光推送至App端String title = record.getTitle(); //標題String contents = record.getContents(); //內容if(StringUtils.isEmpty(MasterSecret) || StringUtils.isEmpty(AppKey)){commonResponse.setCode(MsgReturnCode.APPKEY_MASTERSECRET_EXCEPTION.code);commonResponse.setMessage(MsgReturnCode.APPKEY_MASTERSECRET_EXCEPTION.message);return commonResponse;}PushResult pushResult = push(String.valueOf(title),contents);if(pushResult != null && pushResult.isResultOK()){log.info("針對別名" + title + "的信息推送成功!");commonResponse.setCode(CommonResponse.SUCCEE);commonResponse.setMessage("信息推送成功!");return commonResponse;}else{log.info("針對別名" + title + "的信息推送失敗!");commonResponse.setCode(MsgReturnCode.SYSTEM_EXCEPTION.code);commonResponse.setMessage("信息推送失敗!");return commonResponse;}

上面的?String title = record.getTitle(); ?//標題
String contents = record.getContents(); ?//內容

就是推送的某條消息到用戶手機上,所要展示的標題和內容。

  • JPushClient 調用集成SDK的推送方法sendPush();
  • 生成極光推送對象PushPayload
  • /*** 極光推送方法(采用java SDK)* @param title* @param contents* @return PushResult*/public PushResult push(String title,String contents){ClientConfig clientConfig = ClientConfig.getInstance();JPushClient jpushClient = new JPushClient(MasterSecret, AppKey, null, clientConfig);PushPayload payload = buildPushObject_android_ios_alias_alert(title,contents);try {return jpushClient.sendPush(payload);} catch (APIConnectionException e) {log.error("Connection error. Should retry later. ", e);return null;} catch (APIRequestException e) {log.error("Error response from JPush server. Should review and fix it. ", e);log.info("HTTP Status: " + e.getStatus());log.info("Error Code: " + e.getErrorCode());log.info("Error Message: " + e.getErrorMessage());log.info("Msg ID: " + e.getMsgId());return null;}} /*** 生成極光推送對象PushPayload(采用java SDK)* @param title* @param contents* @return PushPayload*/public PushPayload buildPushObject_android_ios_alias_alert(String title,String contents){return PushPayload.newBuilder().setPlatform(Platform.android_ios()).setAudience(Audience.all()).setNotification(Notification.newBuilder().addPlatformNotification(AndroidNotification.newBuilder().addExtra("type", "infomation").setTitle(title).setAlert(contents).build()).addPlatformNotification(IosNotification.newBuilder().addExtra("type", "infomation").setAlert(contents).build()).build()).setOptions(Options.newBuilder().setApnsProduction(false)//true-推送生產環境 false-推送開發環境(測試使用參數).setTimeToLive(90)//消息在JPush服務器的失效時間(測試使用參數).build()).build();}

    ?

    ? ? ? ? ? ? .setPlatform(Platform.android_ios())??

    ? ?設置要推送的客戶端的平臺android、ios;可以單獨設置android或ios;我這里就都設置了。
    ? ? ? ? ? ? .setAudience(Audience.all())

    ? ?設置要推送的目標群用戶,按照各自業務區分需要,推送給目標群用戶,我這里設置全部用戶了。

    .addPlatformNotification(AndroidNotification.newBuilder().addExtra("type", "infomation").setTitle(title).setAlert(contents).build()) .addPlatformNotification(IosNotification.newBuilder().addExtra("type", "infomation").setAlert(contents).build())

    設置安卓和ios平臺的推送消息標題和內容。整個后臺服務api接口開發就結束了,看著非常簡單;因為極光本身集成了強大的SDK供用戶使用,我們只需要引入jar依賴即可調用SDK中的方法,還有另一種單獨調用極光服務的api開發,那個會稍微復雜點,當然對其原理的理解也會更加深入點。

    三、在安卓和ios客戶端對接

    上面已經說了需要創建appKey和masterSecret。服務端跟客戶端對應同一套參數,這樣保證推送消息一致。

    跟客戶端的聯調開發就不贅述了,這里只強調保證appKey和masterSecret參數一致就行了。

    ?

    ?

    ?

    同名原創公眾號:程序大視界

    ?

    總結

    以上是生活随笔為你收集整理的极光推送JPush使用Java SDK开发的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。