cordova实现消息推送(本地通知)

本地通知的主要目的是让应用程序能够在后台运行时通知用户一些信息,例如消息或即将到来的约会。这些通知通常是基于时间的,一旦触发就会在通知中心显示并呈现给用户。

local notification插件可以通过schedule()方法一次安排一个或多个本地通知,这些通知可以立即触发或在特定时间点触发。在安排多个通知时,请使用schedule([])数组来包含所有通知。

每个本地通知都需要一个唯一的数字id,默认值为0。如果调用本地通知时使用了相同的id,则会替换较早的那个通知。

以下是一些通知的属性:

首先,通过执行以下命令安装该插件:

cordova plugin add https://github.com/katzer/cordova-plugin-local-notifications.git

下面是一个单个通知的示例:

$scope.scheduleSingleNotification = function () {
    cordova.plugins.notification.local.schedule({
        id: 1,
        title: '应用提醒',
        text: '应用有新消息,快来查看吧',
        at: new Date(new Date().getTime() + 5 * 60 * 1000)
    });
};

多个通知的示例:

$scope.scheduleMutipleNotification = function () {
    cordova.plugins.notification.local.schedule([
        {
            id: 1,
            title: '应用提醒1',
            text: '应用有新消息,快来查看吧',
            at: new Date(new Date().getTime() + 5 * 60 * 1000)
        },
        {
            id: 2,
            title: '应用提醒2',
            text: '应用又有新消息,快来查看吧',
            at: new Date(new Date().getTime() + 10 * 60 * 1000)
        }
    ]);
};

推迟提醒的示例:

$scope.scheduleDelayedNotification = function () {
    var now = new Date().getTime(),
        _5_sec_from_now = new Date(now + 5 * 1000);
    cordova.plugins.notification.local.schedule({
        text: "Delayed Notification",
        at: _5_sec_from_now,
        sound: null
    });
};

重复提醒的示例:

$scope.scheduleRepeatedlyNotification = function () {
    cordova.plugins.notification.local.schedule({
        text: "Repeatedly Notification",
        firstAt: monday,
        every: "day",
        icon: "file://img/logo.png"
    }, callback);
}

有两种常用的事件类型:

schedule事件会在调用schedule()方法时触发每一个本地通知,而trigger事件只有在到达其触发时间时才会触发该通知。

schedule事件的示例:

cordova.plugins.notification.local.on("schedule", function(notification) {
    alert("scheduled: " + notification.id);
});

trigger事件的示例:

cordova.plugins.notification.local.on("trigger", function(notification) {
    alert("triggered: " + notification.id);
});

原文链接:https://www./link/f1f49699d5abb3a62e57c6541770b65d

上一篇: windows php关于session临时文件的一个坑 下一篇: mysql删除重复记录只保留一条