警告:如果您忽略此模板,我们将忽略您的问题。
提供问题的一般摘要。
cordova -v
):7.0.1cordova platform ls
):4.4.0_应用程序不应崩溃_
_应用程序崩溃_
_重现此问题; 包括要重现的代码(如果相关)
_我添加了以下代码_
cordova.plugins.notification.local.schedule({
id: 1,
text: "Countdown finished",
sound: null, // also tried without null and without key
at: end.toDate() // this is a valid date Object passed trough from moment.js
});
两件事:通知在后台模式和前台模式下触发。 只要没有达到预定的计时器,一切都很好。 它甚至可以毫无问题地触发通知。 但是,只要我按下主页按钮(将应用程序置于背景)并重新打开应用程序,它就会崩溃。 这仅在调度被触发后才会发生。 只要我按计划打开应用程序就一切正常,但在第二轮之后,它就崩溃了
_在达到给定计时器时发送本地通知_
2017-06-20 15:03:12.263333+0200 应用程序 [1034:586664] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSNull doubleValue]:无法识别的选择器发送到实例 0x1aea6bef8”*首先抛出调用栈:
(0x188902fe0 0x187364538 0x188909ef4 0x188906f54 0x188802d4c 0x100055408 0x1000558f8 0x100055730 0x100055574 0x100057fa8 0x100052ca8 0x10004dd48 0x100475a50 0x100475a10 0x100483990 0x100485630 0x10048539c 0x1879c3100 0x1879c2cac)
libc++abi.dylib:以 NSException 类型的未捕获异常终止
我刚刚发现这是由于我的“恢复”侦听器而发生的,它在本地通知中添加了一个无效的日期。 所以基本上,当“at”无效时,应用程序会崩溃。 应该有一个陷阱来防止应用程序由于错误的日期而崩溃。
为我修好了:
if(end.isValid()) { // isValid is a function from moment.js
cordova.plugins.notification.local.schedule({
id: 1,
text: "YAY! Die Wartezeit ist vorrüber!",
sound: null,
at: end.toDate()
});
}
没错,但不要传递糟糕的日期。
好吧,我花了一个小时才找到问题所在。 抓住这一点应该很容易 1 2 3。喜欢这种类型的支持答案。 :D
最有用的评论
好吧,我花了一个小时才找到问题所在。 抓住这一点应该很容易 1 2 3。喜欢这种类型的支持答案。 :D