這段時間,使用HTML5+和MUI開發了一個手機應用。說實話DCloud組織的技術和文檔着實不夠完善,可是本身一直也是邊踩邊填、踉踉蹌蹌地作完了這個手機應用。工做之餘,也總結一下問題和踩過的坑,但願可以給後來者一些啓發。html
咱們天天使用手機,總會收到許多的手機消息,如圖
html5
對於一個剛開始接觸移動開發的小白來講,感受無從入手。在DCloud論壇上也找到了一些資料,有一篇比較詳盡文章推送插件開發指南,同時也參考了HTML5+上的PUSH文檔。當時看完文章以後依然很是困惑,也就先拋開這些直接去個推網站瞭解究竟。看到個推網站中有個3分鐘快速集成演示而後就跟着作了,沒想到很是容易了就是實現了推送功能。java
緊接着本身又讀了一下論壇上的文章,並跟着去作,最終實現了爲本身開發的應用添加推送功能。具體流程以下:android
登記應用
登陸個推網站,而後在點擊「登記應用」,這裏有個「應用標識」,使用Hbuilder打包的應用並無根據它提示的方法獲取到,後來才瞭解到打包的時候已經自動生成了應用標識(包名)如圖所示:json
記錄關鍵字
登記完成後個推網站就會自動生成AppID、AppSecret、AppKey和MasterSecret關鍵字。
而後將這些關鍵字複製到manifest.json中的推送SDK配置,而後再去打包APP。api
發送推送
手機端安裝完成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+文檔。
但願本文能對你有所幫助!測試