Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
cordova-plugin-local-notifications
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nabil Sadki
cordova-plugin-local-notifications
Commits
ed78cdfb
Commit
ed78cdfb
authored
Jan 16, 2015
by
PKnittel
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/katzer/cordova-plugin-local-notifications
parents
16a38ade
d8a4f573
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
426 additions
and
82 deletions
+426
-82
plugin.xml
plugin.xml
+1
-0
APPLocalNotification.h
src/ios/APPLocalNotification.h
+19
-8
APPLocalNotification.m
src/ios/APPLocalNotification.m
+83
-3
UIApplication+APPLocalNotification.h
src/ios/UIApplication+APPLocalNotification.h
+20
-7
UIApplication+APPLocalNotification.m
src/ios/UIApplication+APPLocalNotification.m
+131
-22
UILocalNotification+APPLocalNotification.h
src/ios/UILocalNotification+APPLocalNotification.h
+2
-0
UILocalNotification+APPLocalNotification.m
src/ios/UILocalNotification+APPLocalNotification.m
+34
-25
local-notification.js
www/local-notification.js
+136
-17
No files found.
plugin.xml
View file @
ed78cdfb
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
<dependency
id=
"org.apache.cordova.device"
url=
"https://github.com/apache/cordova-plugin-device"
/>
<dependency
id=
"org.apache.cordova.device"
url=
"https://github.com/apache/cordova-plugin-device"
/>
<js-module
src=
"www/local-notification.js"
name=
"LocalNotification"
>
<js-module
src=
"www/local-notification.js"
name=
"LocalNotification"
>
<clobbers
target=
"cordova.plugins.notification.local"
/>
<clobbers
target=
"plugin.notification.local"
/>
<clobbers
target=
"plugin.notification.local"
/>
</js-module>
</js-module>
...
...
src/ios/APPLocalNotification.h
View file @
ed78cdfb
...
@@ -26,6 +26,12 @@
...
@@ -26,6 +26,12 @@
// Execute all queued events
// Execute all queued events
-
(
void
)
deviceready
:(
CDVInvokedUrlCommand
*
)
command
;
-
(
void
)
deviceready
:(
CDVInvokedUrlCommand
*
)
command
;
// Inform if the app has the permission to show notifications
-
(
void
)
hasPermission
:(
CDVInvokedUrlCommand
*
)
command
;
// Register permission to show notifications
-
(
void
)
registerPermission
:(
CDVInvokedUrlCommand
*
)
command
;
// Schedule a new notification
// Schedule a new notification
-
(
void
)
add
:(
CDVInvokedUrlCommand
*
)
command
;
-
(
void
)
add
:(
CDVInvokedUrlCommand
*
)
command
;
// Update a notification
// Update a notification
...
@@ -34,21 +40,26 @@
...
@@ -34,21 +40,26 @@
-
(
void
)
cancel
:(
CDVInvokedUrlCommand
*
)
command
;
-
(
void
)
cancel
:(
CDVInvokedUrlCommand
*
)
command
;
// Cancel all currently scheduled notifications
// Cancel all currently scheduled notifications
-
(
void
)
cancelAll
:(
CDVInvokedUrlCommand
*
)
command
;
-
(
void
)
cancelAll
:(
CDVInvokedUrlCommand
*
)
command
;
// Check if a notification with an ID is scheduled
// If a notification with an ID exists
-
(
void
)
exist
:(
CDVInvokedUrlCommand
*
)
command
;
// If a notification with an ID was scheduled
-
(
void
)
isScheduled
:(
CDVInvokedUrlCommand
*
)
command
;
-
(
void
)
isScheduled
:(
CDVInvokedUrlCommand
*
)
command
;
//
Check i
f a notification with an ID was triggered
//
I
f a notification with an ID was triggered
-
(
void
)
isTriggered
:(
CDVInvokedUrlCommand
*
)
command
;
-
(
void
)
isTriggered
:(
CDVInvokedUrlCommand
*
)
command
;
// List all ids from all local notifications
-
(
void
)
getAllIds
:(
CDVInvokedUrlCommand
*
)
command
;
// List all ids from all pending notifications
// List all ids from all pending notifications
-
(
void
)
getScheduledIds
:(
CDVInvokedUrlCommand
*
)
command
;
-
(
void
)
getScheduledIds
:(
CDVInvokedUrlCommand
*
)
command
;
// List all ids from all triggered notifications
// List all ids from all triggered notifications
-
(
void
)
getTriggeredIds
:(
CDVInvokedUrlCommand
*
)
command
;
-
(
void
)
getTriggeredIds
:(
CDVInvokedUrlCommand
*
)
command
;
// List all properties for given scheduled notifications
// Property list for given local notifications
-
(
void
)
getAll
:(
CDVInvokedUrlCommand
*
)
command
;
// Property list for given scheduled notifications
-
(
void
)
getScheduled
:(
CDVInvokedUrlCommand
*
)
command
;
-
(
void
)
getScheduled
:(
CDVInvokedUrlCommand
*
)
command
;
//
List all properties
for given triggered notifications
//
Property list
for given triggered notifications
-
(
void
)
getTriggered
:(
CDVInvokedUrlCommand
*
)
command
;
-
(
void
)
getTriggered
:(
CDVInvokedUrlCommand
*
)
command
;
// Inform if the app has the permission to show notifications
-
(
void
)
hasPermission
:(
CDVInvokedUrlCommand
*
)
command
;
// Register permission to show notifications
-
(
void
)
registerPermission
:(
CDVInvokedUrlCommand
*
)
command
;
@end
@end
src/ios/APPLocalNotification.m
View file @
ed78cdfb
...
@@ -162,6 +162,34 @@
...
@@ -162,6 +162,34 @@
}
}
/**
/**
* If a notification by ID exists.
*
* @param id
* The ID of the notification
*/
-
(
void
)
exist
:(
CDVInvokedUrlCommand
*
)
command
{
[
self
.
commandDelegate
runInBackground
:
^
{
NSString
*
id
=
[[
command
arguments
]
objectAtIndex
:
0
];
CDVPluginResult
*
result
;
UILocalNotification
*
notification
;
notification
=
[[
UIApplication
sharedApplication
]
localNotificationWithId
:
id
];
bool
exists
=
notification
!=
NULL
;
result
=
[
CDVPluginResult
resultWithStatus
:
CDVCommandStatus_OK
messageAsBool
:
exists
];
[
self
.
commandDelegate
sendPluginResult
:
result
callbackId
:
command
.
callbackId
];
}];
}
/**
* If a notification by ID is scheduled.
* If a notification by ID is scheduled.
*
*
* @param id
* @param id
...
@@ -218,6 +246,26 @@
...
@@ -218,6 +246,26 @@
}
}
/**
/**
* List all ids from all local notifications.
*/
-
(
void
)
getAllIds
:(
CDVInvokedUrlCommand
*
)
command
{
[
self
.
commandDelegate
runInBackground
:
^
{
CDVPluginResult
*
result
;
NSArray
*
notIds
;
notIds
=
[[
UIApplication
sharedApplication
]
localNotificationIds
];
result
=
[
CDVPluginResult
resultWithStatus
:
CDVCommandStatus_OK
messageAsArray
:
notIds
];
[
self
.
commandDelegate
sendPluginResult
:
result
callbackId
:
command
.
callbackId
];
}];
}
/**
* List all ids from all pending notifications.
* List all ids from all pending notifications.
*/
*/
-
(
void
)
getScheduledIds
:(
CDVInvokedUrlCommand
*
)
command
-
(
void
)
getScheduledIds
:(
CDVInvokedUrlCommand
*
)
command
...
@@ -258,7 +306,36 @@
...
@@ -258,7 +306,36 @@
}
}
/**
/**
* List all properties for given scheduled notifications.
* Property list for given local notifications.
*
* @param ids
* The IDs of the notifications
*/
-
(
void
)
getAll
:(
CDVInvokedUrlCommand
*
)
command
{
[
self
.
commandDelegate
runInBackground
:
^
{
NSArray
*
ids
=
command
.
arguments
;
NSArray
*
notifications
;
CDVPluginResult
*
result
;
if
(
ids
.
count
==
0
)
{
notifications
=
[[
UIApplication
sharedApplication
]
localNotificationOptions
];
}
else
{
notifications
=
[[
UIApplication
sharedApplication
]
localNotificationOptions
:
ids
];
}
result
=
[
CDVPluginResult
resultWithStatus
:
CDVCommandStatus_OK
messageAsArray
:
notifications
];
[
self
.
commandDelegate
sendPluginResult
:
result
callbackId
:
command
.
callbackId
];
}];
}
/**
* Property list for given scheduled notifications.
*
*
* @param ids
* @param ids
* The IDs of the notifications
* The IDs of the notifications
...
@@ -287,7 +364,7 @@
...
@@ -287,7 +364,7 @@
}
}
/**
/**
*
List all properties
for given triggered notifications.
*
Property list
for given triggered notifications.
*
*
* @param ids
* @param ids
* The IDs of the notifications
* The IDs of the notifications
...
@@ -604,13 +681,16 @@
...
@@ -604,13 +681,16 @@
NSString
*
json
=
notification
.
options
.
json
;
NSString
*
json
=
notification
.
options
.
json
;
NSString
*
args
=
[
notification
encodeToJSON
];
NSString
*
args
=
[
notification
encodeToJSON
];
json
=
[
json
stringByReplacingOccurrencesOfString
:
@"'"
withString
:
@"
\\\\\\
'"
];
params
=
[
NSString
stringWithFormat
:
params
=
[
NSString
stringWithFormat
:
@"
\"
%@
\"
,
\"
%@
\"
,
\\
'%@
\\
',JSON.parse(
\\
'%@
\\
')"
,
@"
\"
%@
\"
,
\"
%@
\"
,
\\
'%@
\\
',JSON.parse(
\\
'%@
\\
')"
,
id
,
self
.
applicationState
,
json
,
args
];
id
,
self
.
applicationState
,
json
,
args
];
}
}
js
=
[
NSString
stringWithFormat
:
js
=
[
NSString
stringWithFormat
:
@"setTimeout('
plugin
.notification.local.on%@(%@)',0)"
,
@"setTimeout('
cordova.plugins
.notification.local.on%@(%@)',0)"
,
event
,
params
];
event
,
params
];
if
(
deviceready
)
{
if
(
deviceready
)
{
...
...
src/ios/UIApplication+APPLocalNotification.h
View file @
ed78cdfb
...
@@ -21,7 +21,11 @@
...
@@ -21,7 +21,11 @@
@interface
UIApplication
(
APPLocalNotification
)
@interface
UIApplication
(
APPLocalNotification
)
@property
(
readonly
,
getter
=
localNotifications
)
NSArray
*
localNotifications
;
@property
(
readonly
,
getter
=
scheduledLocalNotifications2
)
NSArray
*
triggeredLocalNotifications2
;
@property
(
readonly
,
getter
=
triggeredLocalNotifications
)
NSArray
*
triggeredLocalNotifications
;
@property
(
readonly
,
getter
=
triggeredLocalNotifications
)
NSArray
*
triggeredLocalNotifications
;
@property
(
readonly
,
getter
=
localNotificationIds
)
NSArray
*
localNotificationIds
;
@property
(
readonly
,
getter
=
triggeredLocalNotificationIds
)
NSArray
*
triggeredLocalNotificationIds
;
@property
(
readonly
,
getter
=
triggeredLocalNotificationIds
)
NSArray
*
triggeredLocalNotificationIds
;
@property
(
readonly
,
getter
=
scheduledLocalNotificationIds
)
NSArray
*
scheduledLocalNotificationIds
;
@property
(
readonly
,
getter
=
scheduledLocalNotificationIds
)
NSArray
*
scheduledLocalNotificationIds
;
...
@@ -29,17 +33,26 @@
...
@@ -29,17 +33,26 @@
-
(
BOOL
)
hasPermissionToScheduleLocalNotifications
;
-
(
BOOL
)
hasPermissionToScheduleLocalNotifications
;
// Ask for permission to schedule local notifications
// Ask for permission to schedule local notifications
-
(
void
)
registerPermissionToScheduleLocalNotifications
;
-
(
void
)
registerPermissionToScheduleLocalNotifications
;
// Get the scheduled local notification by ID
// Get local notification by ID
-
(
UILocalNotification
*
)
localNotificationWithId
:(
NSString
*
)
id
;
// Get scheduled local notification by ID
-
(
UILocalNotification
*
)
scheduledLocalNotificationWithId
:(
NSString
*
)
id
;
-
(
UILocalNotification
*
)
scheduledLocalNotificationWithId
:(
NSString
*
)
id
;
// Get t
he t
riggered local notification by ID
// Get triggered local notification by ID
-
(
UILocalNotification
*
)
triggeredLocalNotificationWithId
:(
NSString
*
)
id
;
-
(
UILocalNotification
*
)
triggeredLocalNotificationWithId
:(
NSString
*
)
id
;
// List of properties from all scheduled notifications
// Property list from all local notifications
-
(
NSArray
*
)
localNotificationOptions
;
// Property list from all scheduled notifications
-
(
NSArray
*
)
scheduledLocalNotificationOptions
;
-
(
NSArray
*
)
scheduledLocalNotificationOptions
;
// List of properties from given scheduled notifications
// Property list from all triggered notifications
-
(
NSArray
*
)
scheduledLocalNotificationOptions
:(
NSArray
*
)
ids
;
// List of properties from all triggered notifications
-
(
NSArray
*
)
triggeredLocalNotificationOptions
;
-
(
NSArray
*
)
triggeredLocalNotificationOptions
;
// List of properties from given triggered notifications
// Property list from given local notifications
-
(
NSArray
*
)
localNotificationOptions
:(
NSArray
*
)
ids
;
// Property list from given scheduled notifications
-
(
NSArray
*
)
scheduledLocalNotificationOptions
:(
NSArray
*
)
ids
;
// Property list from given triggered notifications
-
(
NSArray
*
)
triggeredLocalNotificationOptions
:(
NSArray
*
)
ids
;
-
(
NSArray
*
)
triggeredLocalNotificationOptions
:(
NSArray
*
)
ids
;
@end
@end
src/ios/UIApplication+APPLocalNotification.m
View file @
ed78cdfb
...
@@ -72,18 +72,55 @@
...
@@ -72,18 +72,55 @@
#pragma mark LocalNotifications
#pragma mark LocalNotifications
/**
/**
* List of all local notifications which have been added
* but not yet removed from the notification center.
*/
-
(
NSArray
*
)
localNotifications
{
NSArray
*
scheduledNotifications
=
self
.
scheduledLocalNotifications
;
NSMutableArray
*
notifications
=
[[
NSMutableArray
alloc
]
init
];
for
(
UILocalNotification
*
notification
in
scheduledNotifications
)
{
if
(
notification
)
{
[
notifications
addObject
:
notification
];
}
}
return
notifications
;
}
/**
* List of all local notifications which have been scheduled
* and not yet removed from the notification center.
*/
-
(
NSArray
*
)
scheduledLocalNotifications2
{
NSArray
*
scheduledNotifications
=
self
.
scheduledLocalNotifications
;
NSMutableArray
*
notifications
=
[[
NSMutableArray
alloc
]
init
];
for
(
UILocalNotification
*
notification
in
scheduledNotifications
)
{
if
(
notification
&&
[
notification
wasScheduled
])
{
[
notifications
addObject
:
notification
];
}
}
return
notifications
;
}
/**
* List of all triggered local notifications which have been scheduled
* List of all triggered local notifications which have been scheduled
* and not yet removed the notification center.
* and not yet removed the notification center.
*/
*/
-
(
NSArray
*
)
triggeredLocalNotifications
-
(
NSArray
*
)
triggeredLocalNotifications
{
{
NSArray
*
scheduledNotifications
=
self
.
scheduledL
ocalNotifications
;
NSArray
*
notifications
=
self
.
l
ocalNotifications
;
NSMutableArray
*
triggeredNotifications
=
[[
NSMutableArray
alloc
]
init
];
NSMutableArray
*
triggeredNotifications
=
[[
NSMutableArray
alloc
]
init
];
for
(
UILocalNotification
*
notification
in
scheduledNotifications
)
for
(
UILocalNotification
*
notification
in
notifications
)
{
if
(
notification
&&
[
notification
wasTriggered
])
{
{
if
([
notification
wasTriggered
])
{
[
triggeredNotifications
addObject
:
notification
];
[
triggeredNotifications
addObject
:
notification
];
}
}
}
}
...
@@ -93,7 +130,24 @@
...
@@ -93,7 +130,24 @@
/**
/**
* List of all triggered local notifications IDs which have been scheduled
* List of all triggered local notifications IDs which have been scheduled
* and not yet removed the notification center.
* and not yet removed from the notification center.
*/
-
(
NSArray
*
)
localNotificationIds
{
NSArray
*
notifications
=
self
.
localNotifications
;
NSMutableArray
*
ids
=
[[
NSMutableArray
alloc
]
init
];
for
(
UILocalNotification
*
notification
in
notifications
)
{
[
ids
addObject
:
notification
.
options
.
id
];
}
return
ids
;
}
/**
* List of all added local notifications IDs which have been scheduled
* and not yet removed from the notification center.
*/
*/
-
(
NSArray
*
)
triggeredLocalNotificationIds
-
(
NSArray
*
)
triggeredLocalNotificationIds
{
{
...
@@ -113,32 +167,50 @@
...
@@ -113,32 +167,50 @@
*/
*/
-
(
NSArray
*
)
scheduledLocalNotificationIds
-
(
NSArray
*
)
scheduledLocalNotificationIds
{
{
NSArray
*
notifications
=
self
.
scheduledLocalNotifications
;
NSArray
*
notifications
=
self
.
scheduledLocalNotifications
2
;
NSMutableArray
*
ids
=
[[
NSMutableArray
alloc
]
init
];
NSMutableArray
*
ids
=
[[
NSMutableArray
alloc
]
init
];
for
(
UILocalNotification
*
notification
in
notifications
)
for
(
UILocalNotification
*
notification
in
notifications
)
{
{
if
(
notification
)
{
[
ids
addObject
:
notification
.
options
.
id
];
[
ids
addObject
:
notification
.
options
.
id
];
}
}
}
return
ids
;
return
ids
;
}
}
/**
/**
* Get the scheduled local notification by ID.
* Get local notification by ID.
*
* @param id
* Notification ID
*/
-
(
UILocalNotification
*
)
localNotificationWithId
:
(
NSString
*
)
id
{
NSArray
*
notifications
=
self
.
localNotifications
;
for
(
UILocalNotification
*
notification
in
notifications
)
{
if
([
notification
.
options
.
id
isEqualToString
:
id
])
{
return
notification
;
}
}
return
NULL
;
}
/**
* Get scheduled local notification by ID.
*
*
* @param id
* @param id
* Notification ID
* Notification ID
*/
*/
-
(
UILocalNotification
*
)
scheduledLocalNotificationWithId
:
(
NSString
*
)
id
-
(
UILocalNotification
*
)
scheduledLocalNotificationWithId
:
(
NSString
*
)
id
{
{
NSArray
*
notifications
=
self
.
scheduledLocalNotifications
;
NSArray
*
notifications
=
self
.
scheduledLocalNotifications
2
;
for
(
UILocalNotification
*
notification
in
notifications
)
for
(
UILocalNotification
*
notification
in
notifications
)
{
{
if
(
notification
&&
[
notification
.
options
.
id
isEqualToString
:
id
])
{
if
([
notification
.
options
.
id
isEqualToString
:
id
])
{
return
notification
;
return
notification
;
}
}
}
}
...
@@ -147,14 +219,14 @@
...
@@ -147,14 +219,14 @@
}
}
/**
/**
* Get t
he t
riggered local notification by ID.
* Get triggered local notification by ID.
*
*
* @param id
* @param id
* Notification ID
* Notification ID
*/
*/
-
(
UILocalNotification
*
)
triggeredLocalNotificationWithId
:
(
NSString
*
)
id
-
(
UILocalNotification
*
)
triggeredLocalNotificationWithId
:
(
NSString
*
)
id
{
{
UILocalNotification
*
notification
=
[
self
scheduledL
ocalNotificationWithId
:
id
];
UILocalNotification
*
notification
=
[
self
l
ocalNotificationWithId
:
id
];
if
(
notification
&&
[
notification
wasTriggered
])
{
if
(
notification
&&
[
notification
wasTriggered
])
{
return
notification
;
return
notification
;
...
@@ -164,37 +236,67 @@
...
@@ -164,37 +236,67 @@
}
}
/**
/**
* List of properties from all notifications.
*/
-
(
NSArray
*
)
localNotificationOptions
{
NSArray
*
notifications
=
self
.
localNotifications
;
NSMutableArray
*
options
=
[[
NSMutableArray
alloc
]
init
];
for
(
UILocalNotification
*
notification
in
notifications
)
{
[
options
addObject
:
notification
.
userInfo
];
}
return
options
;
}
/**
* List of properties from all scheduled notifications.
* List of properties from all scheduled notifications.
*/
*/
-
(
NSArray
*
)
scheduledLocalNotificationOptions
-
(
NSArray
*
)
scheduledLocalNotificationOptions
{
{
NSArray
*
notifications
=
self
.
scheduledLocalNotifications
;
NSArray
*
notifications
=
[
self
scheduledLocalNotifications2
]
;
NSMutableArray
*
options
=
[[
NSMutableArray
alloc
]
init
];
NSMutableArray
*
options
=
[[
NSMutableArray
alloc
]
init
];
for
(
UILocalNotification
*
notification
in
notifications
)
for
(
UILocalNotification
*
notification
in
notifications
)
{
{
if
(
notification
)
{
[
options
addObject
:
notification
.
userInfo
];
[
options
addObject
:
notification
.
userInfo
];
}
}
return
options
;
}
/**
* List of properties from all triggered notifications.
*/
-
(
NSArray
*
)
triggeredLocalNotificationOptions
{
NSArray
*
notifications
=
self
.
triggeredLocalNotifications
;
NSMutableArray
*
options
=
[[
NSMutableArray
alloc
]
init
];
for
(
UILocalNotification
*
notification
in
notifications
)
{
[
options
addObject
:
notification
.
userInfo
];
}
}
return
options
;
return
options
;
}
}
/**
/**
* List of properties from given
scheduled
notifications.
* List of properties from given
local
notifications.
*
*
* @param ids
* @param ids
* Notification IDs
* Notification IDs
*/
*/
-
(
NSArray
*
)
scheduledL
ocalNotificationOptions
:
(
NSArray
*
)
ids
-
(
NSArray
*
)
l
ocalNotificationOptions
:
(
NSArray
*
)
ids
{
{
UILocalNotification
*
notification
;
UILocalNotification
*
notification
;
NSMutableArray
*
options
=
[[
NSMutableArray
alloc
]
init
];
NSMutableArray
*
options
=
[[
NSMutableArray
alloc
]
init
];
for
(
NSString
*
id
in
ids
)
for
(
NSString
*
id
in
ids
)
{
{
notification
=
[
self
scheduledL
ocalNotificationWithId
:
id
];
notification
=
[
self
l
ocalNotificationWithId
:
id
];
if
(
notification
)
{
if
(
notification
)
{
[
options
addObject
:
notification
.
userInfo
];
[
options
addObject
:
notification
.
userInfo
];
...
@@ -205,17 +307,24 @@
...
@@ -205,17 +307,24 @@
}
}
/**
/**
* List of properties from all triggered notifications.
* List of properties from given scheduled notifications.
*
* @param ids
* Notification IDs
*/
*/
-
(
NSArray
*
)
triggeredLocalNotificationOption
s
-
(
NSArray
*
)
scheduledLocalNotificationOptions
:
(
NSArray
*
)
id
s
{
{
NSArray
*
notifications
=
self
.
triggeredLocalNotifications
;
UILocalNotification
*
notification
;
NSMutableArray
*
options
=
[[
NSMutableArray
alloc
]
init
];
NSMutableArray
*
options
=
[[
NSMutableArray
alloc
]
init
];
for
(
UILocalNotification
*
notification
in
notification
s
)
for
(
NSString
*
id
in
id
s
)
{
{
notification
=
[
self
scheduledLocalNotificationWithId
:
id
];
if
(
notification
)
{
[
options
addObject
:
notification
.
userInfo
];
[
options
addObject
:
notification
.
userInfo
];
}
}
}
return
options
;
return
options
;
}
}
...
...
src/ios/UILocalNotification+APPLocalNotification.h
View file @
ed78cdfb
...
@@ -31,6 +31,8 @@
...
@@ -31,6 +31,8 @@
-
(
double
)
timeIntervalSinceFireDate
;
-
(
double
)
timeIntervalSinceFireDate
;
// If the fire date was in the past
// If the fire date was in the past
-
(
BOOL
)
wasInThePast
;
-
(
BOOL
)
wasInThePast
;
// If the notification was already scheduled
-
(
BOOL
)
wasScheduled
;
// If the notification was already triggered
// If the notification was already triggered
-
(
BOOL
)
wasTriggered
;
-
(
BOOL
)
wasTriggered
;
// If the notification was updated
// If the notification was updated
...
...
src/ios/UILocalNotification+APPLocalNotification.m
View file @
ed78cdfb
...
@@ -143,6 +143,32 @@ static char optionsKey;
...
@@ -143,6 +143,32 @@ static char optionsKey;
}
}
/**
/**
* Encode the user info dict to JSON.
*/
-
(
NSString
*
)
encodeToJSON
{
NSString
*
json
;
NSData
*
data
;
NSMutableDictionary
*
obj
=
[
self
.
userInfo
mutableCopy
];
[
obj
removeObjectForKey
:
@"json"
];
[
obj
removeObjectForKey
:
@"updatedAt"
];
data
=
[
NSJSONSerialization
dataWithJSONObject
:
obj
options
:
NSJSONWritingPrettyPrinted
error
:
Nil
];
json
=
[[
NSString
alloc
]
initWithData
:
data
encoding
:
NSUTF8StringEncoding
];
return
[
json
stringByReplacingOccurrencesOfString
:
@"
\n
"
withString
:
@""
];
}
#pragma mark -
#pragma mark State
/**
* If the fire date was in the past.
* If the fire date was in the past.
*/
*/
-
(
BOOL
)
wasInThePast
-
(
BOOL
)
wasInThePast
...
@@ -150,6 +176,12 @@ static char optionsKey;
...
@@ -150,6 +176,12 @@ static char optionsKey;
return
[
self
timeIntervalSinceFireDate
]
>
0
;
return
[
self
timeIntervalSinceFireDate
]
>
0
;
}
}
// If the notification was already scheduled
-
(
BOOL
)
wasScheduled
{
return
[
self
isRepeating
]
||
!
[
self
wasInThePast
];
}
/**
/**
* If the notification was already triggered.
* If the notification was already triggered.
*/
*/
...
@@ -158,9 +190,9 @@ static char optionsKey;
...
@@ -158,9 +190,9 @@ static char optionsKey;
NSDate
*
now
=
[
NSDate
date
];
NSDate
*
now
=
[
NSDate
date
];
NSDate
*
fireDate
=
self
.
fireDate
;
NSDate
*
fireDate
=
self
.
fireDate
;
bool
isLaterThan
OrEqualTo
=
!
([
now
compare
:
fireDate
]
==
NSOrderedAscending
);
bool
isLaterThan
FireDate
=
!
([
now
compare
:
fireDate
]
==
NSOrderedAscending
);
return
isLaterThan
OrEqualTo
;
return
isLaterThan
FireDate
;
}
}
/**
/**
...
@@ -187,27 +219,4 @@ static char optionsKey;
...
@@ -187,27 +219,4 @@ static char optionsKey;
return
[
self
.
options
isRepeating
];
return
[
self
.
options
isRepeating
];
}
}
/**
* Encode the user info dict to JSON.
*/
-
(
NSString
*
)
encodeToJSON
{
NSString
*
json
;
NSData
*
data
;
NSMutableDictionary
*
obj
=
[
self
.
userInfo
mutableCopy
];
[
obj
removeObjectForKey
:
@"json"
];
[
obj
removeObjectForKey
:
@"updatedAt"
];
data
=
[
NSJSONSerialization
dataWithJSONObject
:
obj
options
:
NSJSONWritingPrettyPrinted
error
:
Nil
];
json
=
[[
NSString
alloc
]
initWithData
:
data
encoding
:
NSUTF8StringEncoding
];
return
[
json
stringByReplacingOccurrencesOfString
:
@"
\n
"
withString
:
@""
];
}
@end
@end
www/local-notification.js
View file @
ed78cdfb
...
@@ -67,7 +67,8 @@ exports._defaults = {
...
@@ -67,7 +67,8 @@ exports._defaults = {
badge
:
-
1
,
badge
:
-
1
,
id
:
'0'
,
id
:
'0'
,
json
:
''
,
json
:
''
,
repeat
:
''
repeat
:
''
,
date
:
undefined
};
};
...
@@ -208,6 +209,29 @@ exports.cancelAll = function (callback, scope) {
...
@@ -208,6 +209,29 @@ exports.cancelAll = function (callback, scope) {
};
};
/**
/**
* Check if a notification with an ID exists.
*
* @param {String} id
* The ID of the notification
* @param {Function} callback
* A callback function to be called with the list
* @param {Object?} scope
* The scope for the callback function
*/
exports
.
exist
=
function
(
id
,
callback
,
scope
)
{
var
notId
=
(
id
||
'0'
).
toString
();
this
.
exec
(
'exist'
,
notId
,
callback
,
scope
);
};
/**
* Alias for `exist`.
*/
exports
.
exists
=
function
()
{
this
.
exist
.
apply
(
this
,
arguments
);
};
/**
* Check if a notification with an ID is scheduled.
* Check if a notification with an ID is scheduled.
*
*
* @param {String} id
* @param {String} id
...
@@ -240,7 +264,26 @@ exports.isTriggered = function (id, callback, scope) {
...
@@ -240,7 +264,26 @@ exports.isTriggered = function (id, callback, scope) {
};
};
/**
/**
* List all currently pending notifications.
* List all local notification IDs.
*
* @param {Function} callback
* A callback function to be called with the list
* @param {Object?} scope
* The scope for the callback function
*/
exports
.
getAllIds
=
function
(
callback
,
scope
)
{
this
.
exec
(
'getAllIds'
,
null
,
callback
,
scope
);
};
/**
* Alias for `getAllIds`.
*/
exports
.
getIds
=
function
()
{
this
.
getAllIds
.
apply
(
this
,
arguments
);
};
/**
* List all scheduled notification IDs.
*
*
* @param {Function} callback
* @param {Function} callback
* A callback function to be called with the list
* A callback function to be called with the list
...
@@ -252,7 +295,7 @@ exports.getScheduledIds = function (callback, scope) {
...
@@ -252,7 +295,7 @@ exports.getScheduledIds = function (callback, scope) {
};
};
/**
/**
* List all triggered notifications.
* List all triggered notification
ID
s.
*
*
* @param {Function} callback
* @param {Function} callback
* A callback function to be called with the list
* A callback function to be called with the list
...
@@ -264,7 +307,50 @@ exports.getTriggeredIds = function (callback, scope) {
...
@@ -264,7 +307,50 @@ exports.getTriggeredIds = function (callback, scope) {
};
};
/**
/**
* List all properties for given scheduled notifications.
* Property list for given local notifications.
* If called without IDs, all notification will be returned.
*
* @param {Number[]?} ids
* Set of notification IDs
* @param {Function} callback
* A callback function to be called with the list
* @param {Object?} scope
* The scope for the callback function
*/
exports
.
get
=
function
()
{
var
args
=
Array
.
apply
(
null
,
arguments
);
if
(
typeof
args
[
0
]
==
'function'
)
{
args
.
unshift
([]);
}
var
ids
=
args
[
0
],
callback
=
args
[
1
],
scope
=
args
[
2
];
if
(
!
Array
.
isArray
(
ids
))
{
ids
=
[
ids
];
}
ids
=
this
.
convertIds
(
ids
);
this
.
exec
(
'getAll'
,
ids
,
callback
,
scope
);
};
/**
* Property list for all local notifications.
*
* @param {Function} callback
* A callback function to be called with the list
* @param {Object?} scope
* The scope for the callback function
*/
exports
.
getAll
=
function
(
callback
,
scope
)
{
this
.
exec
(
'getAll'
,
null
,
callback
,
scope
);
};
/**
* Property list for given scheduled notifications.
* If called without IDs, all notification will be returned.
* If called without IDs, all notification will be returned.
*
*
* @param {Number[]?} ids
* @param {Number[]?} ids
...
@@ -307,7 +393,7 @@ exports.getAllScheduled = function (callback, scope) {
...
@@ -307,7 +393,7 @@ exports.getAllScheduled = function (callback, scope) {
};
};
/**
/**
*
List all properties
for given triggered notifications.
*
Property list
for given triggered notifications.
* If called without IDs, all notification will be returned.
* If called without IDs, all notification will be returned.
*
*
* @param {Number[]?} ids
* @param {Number[]?} ids
...
@@ -488,12 +574,22 @@ exports.onclear = function (id, state, json, data) {};
...
@@ -488,12 +574,22 @@ exports.onclear = function (id, state, json, data) {};
exports
.
mergeWithDefaults
=
function
(
options
)
{
exports
.
mergeWithDefaults
=
function
(
options
)
{
var
defaults
=
this
.
getDefaults
();
var
defaults
=
this
.
getDefaults
();
options
.
date
=
this
.
getValueFor
(
options
,
'date'
,
'at'
,
'firstAt'
);
options
.
repeat
=
this
.
getValueFor
(
options
,
'repeat'
,
'every'
);
options
.
message
=
this
.
getValueFor
(
options
,
'message'
,
'text'
);
for
(
var
key
in
defaults
)
{
for
(
var
key
in
defaults
)
{
if
(
options
[
key
]
===
undefined
)
{
if
(
options
[
key
]
===
null
||
options
[
key
]
===
undefined
)
{
options
[
key
]
=
defaults
[
key
];
options
[
key
]
=
defaults
[
key
];
}
}
}
}
for
(
key
in
options
)
{
if
(
!
defaults
.
hasOwnProperty
(
key
))
{
delete
options
[
key
];
}
}
return
options
;
return
options
;
};
};
...
@@ -509,24 +605,24 @@ exports.mergeWithDefaults = function (options) {
...
@@ -509,24 +605,24 @@ exports.mergeWithDefaults = function (options) {
* The converted property list
* The converted property list
*/
*/
exports
.
convertProperties
=
function
(
options
)
{
exports
.
convertProperties
=
function
(
options
)
{
if
(
options
.
id
)
{
options
.
id
=
options
.
id
.
toString
();
options
.
id
=
options
.
id
.
toString
();
}
options
.
title
=
options
.
title
.
toString
();
options
.
message
=
options
.
message
.
toString
();
options
.
autoCancel
=
options
.
autoCancel
===
true
;
if
(
options
.
date
===
undefined
)
{
if
(
isNaN
(
options
.
id
)
)
{
options
.
date
=
new
Date
()
;
options
.
id
=
this
.
getDefaults
().
id
;
}
}
if
(
options
.
title
)
{
if
(
isNaN
(
options
.
badge
)
)
{
options
.
title
=
options
.
title
.
toString
()
;
options
.
badge
=
this
.
getDefaults
().
badge
;
}
}
if
(
options
.
message
)
{
options
.
badge
=
Number
(
options
.
badge
);
options
.
message
=
options
.
message
.
toString
();
}
if
(
options
.
text
)
{
if
(
options
.
date
===
undefined
||
options
.
date
===
null
)
{
options
.
message
=
options
.
text
.
toString
();
options
.
date
=
new
Date
();
}
}
if
(
typeof
options
.
date
==
'object'
)
{
if
(
typeof
options
.
date
==
'object'
)
{
...
@@ -613,6 +709,29 @@ exports.convertIds = function (ids) {
...
@@ -613,6 +709,29 @@ exports.convertIds = function (ids) {
/**
/**
* @private
* @private
*
*
* Return the first found value for the given keys.
*
* @param {Object} options
* Object with key-value properties
*
* @param {String[]} keys*
* Key list
*/
exports
.
getValueFor
=
function
(
options
)
{
var
keys
=
Array
.
apply
(
null
,
arguments
).
slice
(
1
);
for
(
var
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
var
key
=
keys
[
i
];
if
(
options
.
hasOwnProperty
(
key
))
{
return
options
[
key
];
}
}
};
/**
* @private
*
* Executes the native counterpart.
* Executes the native counterpart.
*
*
* @param {String} action
* @param {String} action
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment