应用程序终止时运行 javascript

Posted

技术标签:

【中文标题】应用程序终止时运行 javascript【英文标题】:Run a javascript when app is terminated 【发布时间】:2014-06-09 21:47:15 【问题描述】:

我正在使用本地通知插件 - https://github.com/katzer/cordova-plugin-local-notifications/blob/master/README.md#retrieve-the-ids-from-all-currently-scheduled-local-notifications

我正在安排一个通知,这可行,但我希望能够安排一个仅每两周显示一次的通知,以及每三周才显示一次的通知,是否有人对我有任何指示不让它工作吗?

var now = new Date().getTime(),
_60_seconds_from_now = new Date(now + 120*1000);
window.plugin.notification.local.add(
                                     id:      28,
                                     title:   'Reminder',
                                     message: 'Dont forget to buy some flowers.',
                                     repeat:  'weekly', 

我希望能够重复到每第二周和每第三周以及每周一次。

                                     date:    _60_seconds_from_now
                                     );

这是在 APPLocalNotification.m 文件中

#ifdef NSCalendarUnitHour
[repeatDict setObject:
 [NSNumber numberWithInt:NSCalendarUnitSecond] forKey:@"secondly"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSCalendarUnitMinute] forKey:@"minutely"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSCalendarUnitHour] forKey:@"hourly"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSCalendarUnitDay] forKey:@"daily"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSWeekCalendarUnit] forKey:@"weekly"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSCalendarUnitMonth] forKey:@"monthly"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSCalendarUnitYear] forKey:@"yearly"];
#else
[repeatDict setObject:
 [NSNumber numberWithInt:NSSecondCalendarUnit] forKey:@"secondly"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSMinuteCalendarUnit] forKey:@"minutely"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSHourCalendarUnit] forKey:@"hourly"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSDayCalendarUnit] forKey:@"daily"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSWeekCalendarUnit] forKey:@"weekly"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSMonthCalendarUnit] forKey:@"monthly"];
[repeatDict setObject:
 [NSNumber numberWithInt:NSYearCalendarUnit] forKey:@"yearly"];
#endif

[repeatDict setObject:
 [NSNumber numberWithInt:NSEraCalendarUnit] forKey:@""];

return repeatDict;

是否可以添加新密钥?在这种情况下他们会是什么样子?

【问题讨论】:

【参考方案1】:

repeat: 'weekly' 表示它每周都会重复。所以它会在第一周重复,然后在第二周。使用您的代码,第一次通知将在 2 分钟后准确发出。然后它将在下周的同一时间再次重复。然后在同一时间之后的一周。等等……

这是你需要知道的吗?一个简短的建议:也许您可以在该插件的问题页面上提出这个问题(如何添加该选项)。

【讨论】:

对不起,我觉得我的公式有点,我想设置一个提醒每三周,所以这个不应该每周显示

以上是关于应用程序终止时运行 javascript的主要内容,如果未能解决你的问题,请参考以下文章

在运行和终止时处理 FCM 通知

Javascript未终止的字符串文字错误

由于运行应用程序时未捕获的异常而终止应用程序

OpenCV、Python 和 C++:应用程序请求运行时以异常方式终止

如何在应用程序进入后台或终止时运行计时器

此应用程序已请求运行时以不寻常的方式终止它[重复]