使用「個推」實現手機應用的消息推送

寫在前面

這段時間,使用HTML5+和MUI開發了一個手機應用。說實話DCloud組織的技術和文檔着實不夠完善,可是本身一直也是邊踩邊填、踉踉蹌蹌地作完了這個手機應用。工做之餘,也總結一下問題和踩過的坑,但願可以給後來者一些啓發。html

最初的困惑

咱們天天使用手機,總會收到許多的手機消息,如圖
圖片描述html5

對於一個剛開始接觸移動開發的小白來講,感受無從入手。在DCloud論壇上也找到了一些資料,有一篇比較詳盡文章推送插件開發指南,同時也參考了HTML5+上的PUSH文檔。當時看完文章以後依然很是困惑,也就先拋開這些直接去個推網站瞭解究竟。看到個推網站中有個3分鐘快速集成演示而後就跟着作了,沒想到很是容易了就是實現了推送功能。java

快速實現推送

緊接着本身又讀了一下論壇上的文章,並跟着去作,最終實現了爲本身開發的應用添加推送功能。具體流程以下:android

  1. 登記應用
    登陸個推網站,而後在點擊「登記應用」,這裏有個「應用標識」,使用Hbuilder打包的應用並無根據它提示的方法獲取到,後來才瞭解到打包的時候已經自動生成了應用標識(包名)如圖所示:圖片描述json

  2. 記錄關鍵字
    登記完成後個推網站就會自動生成AppID、AppSecret、AppKey和MasterSecret關鍵字。圖片描述
    而後將這些關鍵字複製到manifest.json中的推送SDK配置,而後再去打包APP。api

  3. 發送推送
    手機端安裝完成APP後,在個推網站中就能夠爲應用發送推送了。若是沒能收到推送,建議多看論壇中的文章推送插件開發指南多試幾回。簡單來講,就是在個推登記應用-->複製關鍵字到PUSH的SDK-->打包應用-->個推發送網絡

服務端發送推送

雖然實現了爲APP發送推送的功能,可是這裏的推送都是個推網站發起的,確定不能普遍應用。所以,我趁熱打鐵跟着個推提供的文檔Java發送個推走下來。不過,文檔中的java代碼只是一個簡單的測試,若是想真正的將推送發出來,還須要修改一下服務端的代碼。這裏我將原來的代碼改爲servlet,而後部署到Tomcat,本地請求這個servlet。這樣在同一網絡中的手機端便可以接受到推送的消息了。
servlet代碼:
`app

public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String appId = "NXX3CdM3wh61ec4fgUIQw";
    String appKey = "SdxEqvoCXZ8bqmumEllS18";
    String masterSecret = "eZ9VjHczaZ6KnRGIniV3r3";
    String url = "http://sdk.open.api.igexin.com/apiex.htm";
    IGtPush push = new IGtPush(url, appKey, masterSecret);

    // 定義"點擊連接打開通知模板",並設置標題、內容、連接
    LinkTemplate template = new LinkTemplate();
    template.setAppId(appId);
    template.setAppkey(appKey);
    template.setTitle("歡迎使用個推!");
    template.setText("這是一條推送消息~");
    template.setUrl("http://getui.com");
List<String> appIds = new ArrayList<String>();
    appIds.add(appId);

    // 定義"AppMessage"類型消息對象,設置消息內容模板、發送的目標App列表、是否支持離線發送、以及離線消息有效期(單位毫秒)
    AppMessage message = new AppMessage();
    message.setData(template);
    message.setAppIdList(appIds);
    message.setOffline(true);
    message.setOfflineExpireTime(1000 * 600);

    IPushResult ret = push.pushMessageToApp(message);
    System.out.println(ret.getResponse().toString());
}

`學習

最後

若是想深刻了解推送的內容,仍是要學習個推的文檔和HTML5+文檔。
但願本文能對你有所幫助!測試

相關文章
相關標籤/搜索