在 Android 上使用 Cordova 将功能安排在将来 运行
Schedule a function to run at a future time with Cordova on Android
我有一个 ionic 应用程序,我想稍后安排通知,并稍后调用其他功能。
我现在拥有的:
var now = new Date();
var _10SecondsFromNow = new Date(now.getTime() + (10 * 1000));
$cordovaLocalNotification.schedule({
id: 1,
title: 'Title here',
text: 'Text here',
at: _10SecondsFromNow
}, function(){
console.log('callback') // never called
})
.then(function(){
console.log('then'); // called right away
});
.then
承诺会立即运行,而不是在 10 秒后收到通知。我还注意到 docs 中有一个回调可以传递给 localNotification
,但是,它永远不会被调用。
我愿意以任何方式安排未来的任务,我不限于来自 cordova 的 localNotification
。
如果您监视 trigger
或 click
事件,则可以使用 localNotifications
来执行此操作,具体取决于您想要实现的目标。
显示通知后将触发 trigger
事件,这似乎是您想要的,看起来像这样:
$rootScope.$on('$cordovaLocalNotification:trigger', function(event, notification, state) {
// Your function here
})
或者您可以使用 click
事件,只有在用户点击通知并打开您的应用时才会触发该事件,如下所示:
$rootScope.$on('$cordovaLocalNotification:click', function(event, notification, state) {
// Your function here
})
这两个事件都有记录 here, but the official Cordova plugin documentation may also be of use, you can find it here。
我有一个 ionic 应用程序,我想稍后安排通知,并稍后调用其他功能。
我现在拥有的:
var now = new Date();
var _10SecondsFromNow = new Date(now.getTime() + (10 * 1000));
$cordovaLocalNotification.schedule({
id: 1,
title: 'Title here',
text: 'Text here',
at: _10SecondsFromNow
}, function(){
console.log('callback') // never called
})
.then(function(){
console.log('then'); // called right away
});
.then
承诺会立即运行,而不是在 10 秒后收到通知。我还注意到 docs 中有一个回调可以传递给 localNotification
,但是,它永远不会被调用。
我愿意以任何方式安排未来的任务,我不限于来自 cordova 的 localNotification
。
如果您监视 trigger
或 click
事件,则可以使用 localNotifications
来执行此操作,具体取决于您想要实现的目标。
显示通知后将触发 trigger
事件,这似乎是您想要的,看起来像这样:
$rootScope.$on('$cordovaLocalNotification:trigger', function(event, notification, state) {
// Your function here
})
或者您可以使用 click
事件,只有在用户点击通知并打开您的应用时才会触发该事件,如下所示:
$rootScope.$on('$cordovaLocalNotification:click', function(event, notification, state) {
// Your function here
})
这两个事件都有记录 here, but the official Cordova plugin documentation may also be of use, you can find it here。