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
82eb458e
Commit
82eb458e
authored
Jul 03, 2017
by
Sebastián Katzer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added launchDetails object if app was launched by notification
parent
766ec4ce
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
11 deletions
+41
-11
APPLocalNotification.h
src/ios/APPLocalNotification.h
+2
-0
APPLocalNotification.m
src/ios/APPLocalNotification.m
+36
-10
local-notification-util.js
www/local-notification-util.js
+3
-1
No files found.
src/ios/APPLocalNotification.h
View file @
82eb458e
...
...
@@ -27,6 +27,8 @@
@interface
APPLocalNotification
:
CDVPlugin
<
UNUserNotificationCenterDelegate
>
// Set launchDetails object
-
(
void
)
launchDetails
:
(
CDVInvokedUrlCommand
*
)
command
;
// Execute all queued events
-
(
void
)
deviceready
:(
CDVInvokedUrlCommand
*
)
command
;
...
...
src/ios/APPLocalNotification.m
View file @
82eb458e
...
...
@@ -32,6 +32,7 @@
@property
(
strong
,
nonatomic
)
UIApplication
*
app
;
@property
(
strong
,
nonatomic
)
UNUserNotificationCenter
*
center
;
@property
(
readwrite
,
assign
)
BOOL
deviceready
;
@property
(
readonly
,
nonatomic
,
retain
)
NSArray
*
launchDetails
;
@property
(
readonly
,
nonatomic
,
retain
)
NSMutableArray
*
eventQueue
;
@end
...
...
@@ -44,6 +45,27 @@
#pragma mark Interface
/**
* Set launchDetails object.
*
* @return [ Void ]
*/
-
(
void
)
launchDetails
:(
CDVInvokedUrlCommand
*
)
command
{
if
(
!
_launchDetails
)
return
;
NSString
*
js
;
js
=
[
NSString
stringWithFormat
:
@"cordova.plugins.notification.local.launchDetails = {id:%@, action:'%@'}"
,
_launchDetails
[
0
],
_launchDetails
[
1
]];
[
self
.
commandDelegate
evalJs
:
js
];
_launchDetails
=
NULL
;
}
/**
* Execute all queued events.
*
* @return [ Void ]
...
...
@@ -512,10 +534,10 @@
[
self
.
commandDelegate
runInBackground
:
^
{
NSDictionary
*
options
=
command
.
arguments
[
0
];
APPNotificationContent
*
notification
;
notification
=
[[
APPNotificationContent
alloc
]
initWithOptions
:
options
];
[
_center
addNotificationCategory
:
notification
.
category
];
[
self
execCallback
:
command
];
}];
...
...
@@ -533,7 +555,7 @@
UNNotificationRequest
*
request
=
notification
.
request
;
[
_center
addNotificationCategory
:
notification
.
category
];
[
_center
addNotificationRequest
:
request
withCompletionHandler
:
^
(
NSError
*
e
)
{
__strong
APPLocalNotification
*
strongSelf
=
weakSelf
;
[
strongSelf
fireEvent
:
@"add"
notification
:
request
];
...
...
@@ -582,7 +604,7 @@
UNNotificationRequest
*
notification
=
response
.
notification
.
request
;
NSString
*
action
=
response
.
actionIdentifier
;
NSString
*
event
=
action
;
completionHandler
();
if
([
action
isEqualToString
:
UNNotificationDefaultActionIdentifier
])
{
...
...
@@ -591,11 +613,15 @@
if
([
action
isEqualToString
:
UNNotificationDismissActionIdentifier
])
{
event
=
@"clear"
;
}
if
(
!
deviceready
&&
[
event
isEqualToString
:
@"click"
])
{
_launchDetails
=
@[
notification
.
options
.
id
,
event
];
}
if
(
!
[
event
isEqualToString
:
@"clear"
])
{
[
self
fireEvent
:
@"clear"
notification
:
notification
];
}
[
self
fireEvent
:
event
notification
:
notification
];
}
...
...
@@ -667,12 +693,12 @@
-
(
void
)
fireEvent
:
(
NSString
*
)
event
notification
:
(
UNNotificationRequest
*
)
request
{
NSString
*
j
s
;
NSString
*
appState
=
[
self
applicationState
];
NSString
*
params
=
[
NSString
stringWithFormat
:
@"
\"
%@
\"
"
,
appState
];
NSString
*
js
,
*
arg
s
;
NSString
*
appState
=
[
self
applicationState
];
NSString
*
params
=
[
NSString
stringWithFormat
:
@"
\"
%@
\"
"
,
appState
];
if
(
request
)
{
NSString
*
args
=
[
request
encodeToJSON
];
args
=
[
request
encodeToJSON
];
params
=
[
NSString
stringWithFormat
:
@"%@,'%@'"
,
args
,
appState
];
}
...
...
www/local-notification-util.js
View file @
82eb458e
...
...
@@ -302,11 +302,13 @@ exports.exec = function (action, args, callback, scope) {
channel
.
deviceready
.
subscribe
(
function
()
{
// Device is ready now, the listeners are registered
// and all queued events can be executed.
ex
ec
(
null
,
null
,
'LocalNotification'
,
'deviceready'
,
[]
);
ex
ports
.
exec
(
'deviceready'
);
});
// Called before 'deviceready' event
channel
.
onCordovaReady
.
subscribe
(
function
()
{
// Store launchedBy notification
exports
.
exec
(
'launchDetails'
);
// Device plugin is ready now
channel
.
onCordovaInfoReady
.
subscribe
(
function
()
{
// Merge platform specifics into defaults
...
...
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