目录

概述

本插件的作用是:在通知栏显示自定义参数的通知,提醒用户有待办事项,如新消息、会议等。

JS调用方法

1、导入插件require(“cordova!de.appplant.cordova.plugin.local-notification”);
2、本文对应的插件demo使用了三个方法:

  • schedule:发送自定义参数的通知
  • cancelAll:取消所有通知
  • getScheduledIds:获取即将显示的通知的id

js代码

define(function(require){
	var $ = require("jquery");
	require("cordova!de.appplant.cordova.plugin.local-notification");
	var utils = require("$UI/demo/plugin/utils");
	var notification=plugin.notification.local;
	var Model = function(){
		this.callParent();
	};
	Model.prototype.silentMsgClick = function(event){
		notification.schedule({
             id : 1,
          title : '我是标题!',
           text : '静音的通知!',
          sound : null,
             at : getNowPlus10Seconds()
        });
	}

	
	Model.prototype.MsgWithT_SClick = function(event){
        notification.schedule({
             id : '2', // you don't have to use an int by the way.. '1a' or just 'a' would be fine
          title : '有声的通知',
           text : '除非你手机是静音的',
             at : getNowPlus10Seconds()
        });
	};    
    function getNowPlus10Seconds() {
    	return new Date(new Date().getTime() + 10*1000);
    }	
	Model.prototype.MsgWithDataClick = function(event){
        notification.schedule({
	         id : 3,
	       text : '我是包含数据的通知,点击进入应用!',
	       json : JSON.stringify({ test: 123 }),
	         at : getNowPlus10Seconds()
        });
	};	
	Model.prototype.MsgWithBadgeClick = function(event){
        notification.schedule({
             id : 4,
          title : '更新角标(仅限iOS)',
           text : '点击取消所有通知能清除角标',
          badge : 1,
             at : getNowPlus10Seconds()
        });
	};	
	Model.prototype.MsgWithSoundEveryMinuteClick = function(event){
		notification.schedule({
             id : 5,
          title : '我会每分钟出现一次',
           text : '除非你取消了所有的通知',
          every : 'minute',
      autoClear : false,
             at : getNowPlus10Seconds()
        });
	};	

	Model.prototype.cancelAllNotificationClick = function(event){
		notification.cancelAll(function() {alert('取消所有通知')});
	};	
	Model.prototype.getNotificationIDsClick = function(event){
        cordova.plugins.notification.local.getScheduledIds(function (scheduledIds) {
            alert(scheduledIds.join(', '), null, '通知的ID是:', '关闭');
        })
	}; 
	cordova.plugins.notification.local.on("click", function (notification) {
	    alert(notification.data);
	});
	Model.prototype.modelModelConstructDone = function(event){
		utils.showCode(this, "silentMsgClick");
		utils.showCode(this, "MsgWithT_SClick");
		utils.showCode(this, "MsgWithDataClick");
		utils.showCode(this, "MsgWithBadgeClick");
		utils.showCode(this, "MsgWithSoundEveryMinuteClick");
		utils.showCode(this, "getNotificationIDsClick");
		utils.showCode(this, "cancelAllNotificationClick");	     
		utils.prettyPrint();
	};

	return Model;
});

注意事项

1、demo中的通知都是十秒后发送的,获取通知的id是尚未发送的通知id,已经显示在通知栏的id不能通过getScheduledIds获取。
2、自定义通知可以有很多种形式,demo里列举了五种不同通知的参数写法,改变app图标角标的特性是iOS独有的。
3、点击在通知栏显示的通知会进入应用页面,但只有包含数据的通知能显示数据,其它通知显示的undefined是正常的。