這裏主要用到cordova提供的插件:(在app沒有關閉的狀況下只要有推送的消息就會有提醒,可是在app關閉的狀況下就不會提示)javascript
首先安裝cordova-plugin-local-notifications,而後在JS配置好以下就能夠了:java
安裝:ionic/cordova plugin add cordova-plugin-local-notifications;
安裝的時候它會自動安裝幾個依賴的插件;android
狀態欄通報提醒 $scope.notificationReminder = function(faxInfo){ cordova.plugins.notification.local.add({ id: id, title: '', text: '', at: new Date().getTime(), //badge: 2, autoClear: true,//默認值 sound: 'res://platform_default',//默認值 icon: 'res://ic_popup_reminder', //默認值 ongoing: false //默認值 });
}
以上的屬性:
此時ionic build android 報錯:web
緣由以下:app
cordova 5.0.0以上版本對 evaluateJavascript 再也不支持,用sendJavascript進行替換。ionic
在插件目錄下的LocalNotification.java文件中:post
561行的代碼替換以下:gradle
webView.getView().post(new Runnable(){ public void run(){ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { webView.sendJavascript(js); } else { webView.loadUrl("javascript:" + js); } } });
此時在cordova build android,又出現錯誤,以下圖:ui
解決方法:lua
網上搜了哈:報錯的緣由是:依賴包重複;
個錯誤在app的build.gradle裏面添加下面這句就行了:
android { defaultConfig { ... multiDexEnabled true } }
此時我又從新build,又報錯,以下:
爲何呢? 重複添加了包,重複引用了IdRes.class;
解決方案:
事件監聽:
//shedule事件在每次調用時觸發 cordova.plugins.notification.local.on('schedule', function (notification) { alert('scheduled:' + notification.id); }); //通知觸發事件 cordova.plugins.notification.local.on('trigger', function (notification) { //alert('triggered:' + notification.id); alert(JSON.stringify(notification)); }); //監聽點擊事件(點擊通知欄上的消息以後觸發的事件,頁面邏輯能夠在這裏寫) cordova.plugins.notification.local.on('click', function (notification) { alert(JSON.stringify(notification)); document.getElementById('title').innerHTML = JSON.stringify(notification.data); });