本地通知phonegap ios

Posted

技术标签:

【中文标题】本地通知phonegap ios【英文标题】:Local notification phonegap ios 【发布时间】:2014-08-30 12:06:56 【问题描述】:

我将Local Notification plugin 用于phonegap ios 应用程序。当我尝试添加新通知时,应用程序会抛出 NSInvalidArgumentException。

这是我添加通知时的代码:

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

这是输出


Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber isEqualToString:]: unrecognized selector sent to instance 0xa26c650'
*** First throw call stack:
(
    0   CoreFoundation                      0x000dd1e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x021948e5 objc_exception_throw + 44
    2   CoreFoundation                      0x0017a243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
    3   CoreFoundation                      0x000cd50b ___forwarding___ + 1019
    4   CoreFoundation                      0x000cd0ee _CF_forwarding_prep_0 + 14
    5   OPS                                 0x000276e9 -[APPLocalNotification notificationWithId:] + 521
    6   OPS                                 0x00027246 -[APPLocalNotification isNotificationScheduledWithId:] + 86
    7   OPS                                 0x00023458 __28-[APPLocalNotification add:]_block_invoke + 200
    8   libdispatch.dylib                   0x027527b8 _dispatch_call_block_and_release + 15
    9   libdispatch.dylib                   0x027674d0 _dispatch_client_callout + 14
    10  libdispatch.dylib                   0x02755eb7 _dispatch_root_queue_drain + 291
    11  libdispatch.dylib                   0x02756127 _dispatch_worker_thread2 + 39
    12  libsystem_pthread.dylib             0x02a96dab _pthread_wqthread + 336
    13  libsystem_pthread.dylib             0x02a9acce start_wqthread + 30
)
libc++abi.dylib: terminating with uncaught exception of type NSException

有什么想法吗?谢谢你。

【问题讨论】:

您从本机端收到错误,您传递的参数之一可能与预期的类型不同。您可以在 xcode 中调试并轻松解决问题。还有可能有几个本地通知插件,我没看到你用的是哪个。 嗨@mentat,我正在使用这个插件github.com/katzer/cordova-plugin-local-notifications另外,我在xcode中调试,我没有发现任何奇怪的东西 【参考方案1】:

您的 id 参数不是字符串,但插件似乎需要 id 的字符串值。

【讨论】:

【参考方案2】:

我找到了解决方案。如果您使用的是 iOS 7.1,则必须替换此行

 NSString* notId =[notification.userInfo objectForKey:@"id"];

为此

 NSString* notId =[NSString stringWithFormat:@"%@", [notification.userInfo objectForKey:@"id"]];

在方法notificationWithId中。

感谢您的帮助!

【讨论】:

以上是关于本地通知phonegap ios的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap/Cordova 中的本地通知

ios 阻止本地通知是不是被认为是有害的?

适用于 Android 的 Phonegap 本地通知插件

注册本地通知

Phonegap 本地通知插件不起作用

PhoneGap Android 中每天重复的本地通知