對於Ionic項目中使用消息推送服務,Ionic官方提供了ngCordova項目,這個裏面的提供了用angularjs封裝好的消息推送服務(官方文檔),使用的是GitHub上的 PushPlugin 插件,也有相關的實現實例:GitHub地址 ,可是使用的是Google的GCM消息推送服務,一些網絡緣由,國內GCM可能不怎麼好用(本身也沒有試可不能夠)。java
因而選擇國內的消息推送服務,主要有:百度雲推送,騰訊信鴿,極光推送,yunba 等等,其中只有極光推送官方提供了phonegap/cordova 插件,其餘的幾個GitHub上也有我的開發了相應的插件(能夠GitHub上搜 :baidupush,xgpush能夠找到),鑑因而官方提供,因此選擇了極光推送。android
Github地址:https://github.com/jpush/jpush-phonegap-plugingit
下面說下在Ionic項目中如何使用這個插件。angularjs
第一步:註冊極光推送帳戶,並建立應用github
測試例子,應用名稱爲jPushDemo,應用包名:cn.kigsir.jpushdemoweb
建立成功後,會爲應用生成一個appkey(後面要用到的) 和 一個API密鑰apache
第二步:下載並配置極光推送phonegap插件(這一步Github上有詳細文檔)網絡
1.運行命令行,切換到你想保存插件的目錄,這裏咱們保存到H:\webapp\push\JPush\plugins\目錄下,執行:app
cd H:\webapp\push\JPush\plugins\webapp
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地址