ionic 前端接收到後臺推送來的消息後,顯示在手機的通知欄上

這裏主要用到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);  
}); 
相關文章
相關標籤/搜索