ios - PhoneGap iOS LocalNotifications 夏令时

标签 ios objective-c cordova phonegap-plugins uilocalnotification

我正在使用(臭名昭著的)Drew Dahlman's Phonegap Local Notifications in iOS .它似乎有效。

我从来没有写过一行 objective-c 并且不想写(这可能就是我现在遇到麻烦的原因!)但我认为插件工作不正常并且会如果可能的话,我想修复它。

当我在今天 13:00 设置通知时,它会正确触发。但是,当实行夏令时时,通知会在 14:00 触发,晚了一个小时。

这是因为没有考虑时区吗? Drew 提到将时区设置为 +0000 不是问题,但这是错误信息吗?我应该更新插件来处理时区和夏令时吗?或者在我自己的代码中处理夏令时,并在 DST 激活时简单地将日期设置为 -1 小时?

我想我必须更新 LocalNotification.m 中的第二行,但正如我所说,我不确定要将其更新为什么。

UILocalNotification *notif = [[UILocalNotification alloc] init];
notif.timeZone = [NSTimeZone defaultTimeZone];

最佳答案

啊,设置通知的时候好像有点奇怪的问题。

示例 1: 当我这样做时,duedate 的值是 2013-04-08T21:30

var d = new Date(duedate).getTime();
d = new Date(d);

plugins.localNotification.add({
date: d,
...

通知被记录为设置为 21:30,如下所示:

通知集:2013-04-08 21:30:00 +0000

示例 2: 如果我像这样设置 duedate:(现在时间是 21:30)

var d = new Date().getTime();

通知被记录为设置为 20:30,如下所示:

通知集:2013-04-08 20:30:00 +0000

但是在第二个示例中,由于夏令时,通知在 21:30 触发。

解决方案(各种)

我将不得不添加或减去现在和我希望触发通知的时间差,而不是专门设置日期。

关于ios - PhoneGap iOS LocalNotifications 夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15881445/

相关文章:

android - Cordova Facebook Connect 在初始化时失败

ios - 如何从Phonegap IOS中的IFrame访问Cordova功能

ios - UILabel 在 initWithCoder 中为 nil

ios - 有什么方法可以使用全局静态字典来访问 objective-c ios 中的所有 View Controller 吗?

iphone - 在 UITableViewCell 的父类中使用 XIB

ios - UIRectCornerTopRight 的圆角不起作用

ios - Xcode:Table View Cell 不会自动调整其高度

ios - 本地开发如何下载Podspec依赖

ios - Fabric Firebase 迁移后出现崩溃需要什么条件?

cordova - 更新到 IOS 11 后在 IOS 模拟器上运行错误 - Ionic 3