對於Ionic項目中使用消息推送服務,Ionic官方提供了ngCordova項目,這個里面的提供了用angularjs封裝好的消息推送服務(官方文檔),使用的是GitHub上的 PushPlugin 插件,也有相關的實現實例:GitHub地址 ,但是使用的是Google的GCM消息推送服務,一些網絡原因,國內GCM可能不怎么好用(自己也沒有試可不可以)。
於是選擇國內的消息推送服務,主要有:百度雲推送,騰訊信鴿,極光推送,yunba 等等,其中只有極光推送官方提供了phonegap/cordova 插件,其他的幾個GitHub上也有個人開發了相應的插件(可以GitHub上搜 :baidupush,xgpush可以找到),鑒於是官方提供,所以選擇了極光推送。
Github地址:https://github.com/jpush/jpush-phonegap-plugin
下面說下在Ionic項目中如何使用這個插件。
第一步:注冊極光推送賬戶,並創建應用
測試例子,應用名稱為jPushDemo,應用包名:cn.kigsir.jpushdemo
創建成功后,會為應用生成一個appkey(后面要用到的) 和 一個API密鑰
第二步:下載並配置極光推送phonegap插件(這一步Github上有詳細文檔)
1.運行命令行,切換到你想保存插件的目錄,這里我們保存到H:\webapp\push\JPush\plugins\目錄下,執行:
cd H:\webapp\push\JPush\plugins\
git clone https://github.com/jpush/jpush-phonegap-plugin.git
等待完成。
2.打開插件目錄下的plugin.xml文件,找到
<meta-data android:name="JPUSH_APPKEY" android:value="your appkey"/>
用剛才在極光推送創建的應用的appkey 替換 “your appkey"。
3.打開插件目錄\src\android\JPushPlugin.java 文件,找到import your.package.name.R,將其替換為:cn.kigsir.jpushdemo.R。
第三步:創建ionic項目並添加上面的插件
運行命令行,切換到你想創建ionic項目的目錄
cd H:\webapp\projects\cordovastudy\
創建項目(這里的包名要和添加應用時設置的包名一致):
ionic start -a jPushDemo -i cn.kigsir.jpushdemo jpushdemo blank
進入項目目錄:
cd jpushdemo
添加android平台:
ionic platform add android
添加極光推送插件:
ionic plugin add H:\webapp\push\JPush\plugins\jpush-phonegap-plugin
添加device插件(因為極光推送插件依賴這個):
ionic plugin add org.apache.cordova.device(可以省略,ionic項目默認添加了這個插件)
最后在app.js文件中添加啟動推送服務代碼
angular.module('starter', ['ionic']) .run(function($ionicPlatform) { $ionicPlatform.ready(function() { // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard // for form inputs) if(window.cordova && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); } if(window.StatusBar) { StatusBar.styleDefault(); } //啟動極光推送服務 window.plugins.jPushPlugin.init(); //調試模式 window.plugins.jPushPlugin.setDebugMode(true); }); })
至此所以配置已經完成我們可以build項目了
ionic build android
將生成的apk文件安裝到手機,在極光推送官網的應用控制台發送通知測試,測試效果:
最后簡單的封裝了一些極光推送的功能,效果如下:
2015-03-17
添加了打開推送通知跳轉到指定頁面功能,源碼:GitHub地址