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
a2b77a2f
Commit
a2b77a2f
authored
Dec 21, 2014
by
Sebastián Katzer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Flatten JS file
parent
a21a13bb
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
178 additions
and
169 deletions
+178
-169
local-notification.js
www/local-notification.js
+178
-169
No files found.
www/local-notification.js
View file @
a2b77a2f
...
@@ -19,8 +19,48 @@
...
@@ -19,8 +19,48 @@
under the License.
under the License.
*/
*/
var
LocalNotification
=
function
()
{
var
exec
=
require
(
'cordova/exec'
),
this
.
_defaults
=
{
channel
=
require
(
'cordova/channel'
);
// Called after 'deviceready' event
channel
.
deviceready
.
subscribe
(
function
()
{
// Device is ready now, the listeners are registered
// and all queued events can be executed.
exec
(
null
,
null
,
'LocalNotification'
,
'deviceready'
,
[]);
});
// Called before 'deviceready' event
channel
.
onCordovaReady
.
subscribe
(
function
()
{
// The cordova device plugin is ready now
channel
.
onCordovaInfoReady
.
subscribe
(
function
()
{
if
(
device
.
platform
==
'Android'
)
{
channel
.
onPause
.
subscribe
(
function
()
{
// Necessary to set the state to `background`
exec
(
null
,
null
,
'LocalNotification'
,
'pause'
,
[]);
});
channel
.
onResume
.
subscribe
(
function
()
{
// Necessary to set the state to `foreground`
exec
(
null
,
null
,
'LocalNotification'
,
'resume'
,
[]);
});
// Necessary to set the state to `foreground`
exec
(
null
,
null
,
'LocalNotification'
,
'resume'
,
[]);
}
// Merges the platform specific properties into the default properties
exports
.
applyPlatformSpecificOptions
();
});
});
/**
* @private
*
* Default values.
*/
exports
.
_defaults
=
{
message
:
''
,
message
:
''
,
title
:
''
,
title
:
''
,
autoCancel
:
false
,
autoCancel
:
false
,
...
@@ -28,25 +68,24 @@ var LocalNotification = function () {
...
@@ -28,25 +68,24 @@ var LocalNotification = function () {
id
:
'0'
,
id
:
'0'
,
json
:
''
,
json
:
''
,
repeat
:
''
repeat
:
''
};
};
};
LocalNotification
.
prototype
=
{
/**
/**
* Returns the default settings
* Returns the default settings
*
*
* @return {Object}
* @return {Object}
*/
*/
getDefaults
:
function
()
{
exports
.
getDefaults
=
function
()
{
return
this
.
_defaults
;
return
this
.
_defaults
;
},
};
/**
/**
* Overwrite default settings
* Overwrite default settings
*
*
* @param {Object} defaults
* @param {Object} defaults
*/
*/
setDefaults
:
function
(
newDefaults
)
{
exports
.
setDefaults
=
function
(
newDefaults
)
{
var
defaults
=
this
.
getDefaults
();
var
defaults
=
this
.
getDefaults
();
for
(
var
key
in
defaults
)
{
for
(
var
key
in
defaults
)
{
...
@@ -54,86 +93,12 @@ LocalNotification.prototype = {
...
@@ -54,86 +93,12 @@ LocalNotification.prototype = {
defaults
[
key
]
=
newDefaults
[
key
];
defaults
[
key
]
=
newDefaults
[
key
];
}
}
}
}
},
};
/**
* @private
*
* Merges custom properties with the default values.
*
* @param {Object} options
* Set of custom values
*
* @retrun {Object}
* The merged property list
*/
mergeWithDefaults
:
function
(
options
)
{
var
defaults
=
this
.
getDefaults
();
for
(
var
key
in
defaults
)
{
if
(
options
[
key
]
===
undefined
)
{
options
[
key
]
=
defaults
[
key
];
}
}
return
options
;
},
/**
* @private
*
* Merges the platform specific properties into the default properties.
*
* @return {Object}
* The default properties for the platform
*/
applyPlatformSpecificOptions
:
function
()
{
var
defaults
=
this
.
_defaults
;
switch
(
device
.
platform
)
{
case
'Android'
:
defaults
.
icon
=
'icon'
;
defaults
.
smallIcon
=
null
;
defaults
.
ongoing
=
false
;
defaults
.
led
=
'FFFFFF'
;
/*RRGGBB*/
defaults
.
sound
=
'TYPE_NOTIFICATION'
;
break
;
case
'iOS'
:
defaults
.
sound
=
''
;
break
;
case
'WinCE'
:
case
'Win32NT'
:
defaults
.
smallImage
=
null
;
defaults
.
image
=
null
;
defaults
.
wideImage
=
null
;
}
return
defaults
;
},
/**
* @private
*
* Creates a callback, which will be executed within a specific scope.
*
* @param {Function} callbackFn
* The callback function
* @param {Object} scope
* The scope for the function
*
* @return {Function}
* The new callback function
*/
createCallbackFn
:
function
(
callbackFn
,
scope
)
{
if
(
typeof
callbackFn
!=
'function'
)
return
;
return
function
()
{
callbackFn
.
apply
(
scope
||
this
,
arguments
);
};
},
/**
/**
* Add a new entry to the registry
* Add a new entry to the registry
*
*
* @param {Object} option
s
* @param {Object} prop
s
* The notification properties
* The notification properties
* @param {Function} callback
* @param {Function} callback
* A function to be called after the notification has been canceled
* A function to be called after the notification has been canceled
...
@@ -143,7 +108,7 @@ LocalNotification.prototype = {
...
@@ -143,7 +108,7 @@ LocalNotification.prototype = {
* @return {Number}
* @return {Number}
* The notification's ID
* The notification's ID
*/
*/
add
:
function
(
option
s
,
callback
,
scope
)
{
exports
.
add
=
function
(
prop
s
,
callback
,
scope
)
{
var
options
=
this
.
mergeWithDefaults
(
options
),
var
options
=
this
.
mergeWithDefaults
(
options
),
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
...
@@ -173,12 +138,12 @@ LocalNotification.prototype = {
...
@@ -173,12 +138,12 @@ LocalNotification.prototype = {
};
};
}
}
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'add'
,
[
options
]);
exec
(
fn
,
null
,
'LocalNotification'
,
'add'
,
[
options
]);
return
options
.
id
;
return
options
.
id
;
},
};
/**
/**
* Cancels the specified notification.
* Cancels the specified notification.
*
*
* @param {String} id
* @param {String} id
...
@@ -188,14 +153,13 @@ LocalNotification.prototype = {
...
@@ -188,14 +153,13 @@ LocalNotification.prototype = {
* @param {Object} scope
* @param {Object} scope
* The scope for the callback function
* The scope for the callback function
*/
*/
cancel
:
function
(
id
,
callback
,
scope
)
{
exports
.
cancel
=
function
(
id
,
callback
,
scope
)
{
var
id
=
id
.
toString
(),
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'cancel'
,
[
id
]);
exec
(
fn
,
null
,
'LocalNotification'
,
'cancel'
,
[
id
.
toString
()
]);
},
};
/**
/**
* Removes all previously registered notifications.
* Removes all previously registered notifications.
*
*
* @param {Function} callback
* @param {Function} callback
...
@@ -203,13 +167,13 @@ LocalNotification.prototype = {
...
@@ -203,13 +167,13 @@ LocalNotification.prototype = {
* @param {Object} scope
* @param {Object} scope
* The scope for the callback function
* The scope for the callback function
*/
*/
cancelAll
:
function
(
callback
,
scope
)
{
exports
.
cancelAll
=
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'cancelAll'
,
[]);
exec
(
fn
,
null
,
'LocalNotification'
,
'cancelAll'
,
[]);
},
};
/**
/**
* Retrieves a list with all currently pending notifications.
* Retrieves a list with all currently pending notifications.
*
*
* @param {Function} callback
* @param {Function} callback
...
@@ -217,13 +181,13 @@ LocalNotification.prototype = {
...
@@ -217,13 +181,13 @@ LocalNotification.prototype = {
* @param {Object} scope
* @param {Object} scope
* The scope for the callback function
* The scope for the callback function
*/
*/
getScheduledIds
:
function
(
callback
,
scope
)
{
exports
.
getScheduledIds
=
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'getScheduledIds'
,
[]);
exec
(
fn
,
null
,
'LocalNotification'
,
'getScheduledIds'
,
[]);
},
};
/**
/**
* Checks wether a notification with an ID is scheduled.
* Checks wether a notification with an ID is scheduled.
*
*
* @param {String} id
* @param {String} id
...
@@ -233,14 +197,13 @@ LocalNotification.prototype = {
...
@@ -233,14 +197,13 @@ LocalNotification.prototype = {
* @param {Object} scope
* @param {Object} scope
* The scope for the callback function
* The scope for the callback function
*/
*/
isScheduled
:
function
(
id
,
callback
,
scope
)
{
exports
.
isScheduled
=
function
(
id
,
callback
,
scope
)
{
var
id
=
id
.
toString
(),
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'isScheduled'
,
[
id
]);
exec
(
fn
,
null
,
'LocalNotification'
,
'isScheduled'
,
[
id
.
toString
()
]);
},
};
/**
/**
* Retrieves a list with all triggered notifications.
* Retrieves a list with all triggered notifications.
*
*
* @param {Function} callback
* @param {Function} callback
...
@@ -248,13 +211,13 @@ LocalNotification.prototype = {
...
@@ -248,13 +211,13 @@ LocalNotification.prototype = {
* @param {Object} scope
* @param {Object} scope
* The scope for the callback function
* The scope for the callback function
*/
*/
getTriggeredIds
:
function
(
callback
,
scope
)
{
exports
.
getTriggeredIds
=
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'getTriggeredIds'
,
[]);
exec
(
fn
,
null
,
'LocalNotification'
,
'getTriggeredIds'
,
[]);
},
};
/**
/**
* Checks wether a notification with an ID was triggered.
* Checks wether a notification with an ID was triggered.
*
*
* @param {String} id
* @param {String} id
...
@@ -264,41 +227,47 @@ LocalNotification.prototype = {
...
@@ -264,41 +227,47 @@ LocalNotification.prototype = {
* @param {Object} scope
* @param {Object} scope
* The scope for the callback function
* The scope for the callback function
*/
*/
isTriggered
:
function
(
id
,
callback
,
scope
)
{
exports
.
isTriggered
=
function
(
id
,
callback
,
scope
)
{
var
id
=
id
.
toString
(),
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'isTriggered'
,
[
id
]);
exec
(
fn
,
null
,
'LocalNotification'
,
'isTriggered'
,
[
id
.
toString
()
]);
},
};
/**
/**
* Informs if the app has the permission to show badge
s.
* Informs if the app has the permission to show notification
s.
*
*
* @param {Function} callback
* @param {Function} callback
* The function to be exec as the callback
* The function to be exec as the callback
* @param {Object?} scope
* @param {Object?} scope
* The callback function's scope
* The callback function's scope
*/
*/
hasPermission
:
function
(
callback
,
scope
)
{
exports
.
hasPermission
=
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
if
(
device
.
platform
==
'iOS'
)
{
if
(
device
.
platform
!=
'iOS'
)
{
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'hasPermission'
,
[]);
}
else
if
(
fn
)
{
fn
(
true
);
fn
(
true
);
return
;
}
}
},
/**
exec
(
fn
,
null
,
'LocalNotification'
,
'hasPermission'
,
[]);
* Ask for permission to show badges if not already granted.
};
/**
* Ask for permission to show notifications if not already granted.
*
* @param {Function} callback
* The function to be exec as the callback
* @param {Object?} scope
* The callback function's scope
*/
*/
promptForPermission
:
function
()
{
exports
.
promptForPermission
=
function
(
callback
,
scope
)
{
if
(
device
.
platform
==
'iOS'
)
{
if
(
device
.
platform
!=
'iOS'
)
cordova
.
exec
(
null
,
null
,
'LocalNotification'
,
'promptForPermission'
,
[]);
return
;
}
},
/**
exec
(
null
,
null
,
'LocalNotification'
,
'promptForPermission'
,
[]);
};
/**
* Occurs when a notification was added.
* Occurs when a notification was added.
*
*
* @param {String} id
* @param {String} id
...
@@ -308,9 +277,9 @@ LocalNotification.prototype = {
...
@@ -308,9 +277,9 @@ LocalNotification.prototype = {
* @param {String} json
* @param {String} json
* A custom (JSON) string
* A custom (JSON) string
*/
*/
onadd
:
function
(
id
,
state
,
json
)
{},
exports
.
onadd
=
function
(
id
,
state
,
json
)
{};
/**
/**
* Occurs when the notification is triggered.
* Occurs when the notification is triggered.
*
*
* @param {String} id
* @param {String} id
...
@@ -320,9 +289,9 @@ LocalNotification.prototype = {
...
@@ -320,9 +289,9 @@ LocalNotification.prototype = {
* @param {String} json
* @param {String} json
* A custom (JSON) string
* A custom (JSON) string
*/
*/
ontrigger
:
function
(
id
,
state
,
json
)
{},
exports
.
ontrigger
=
function
(
id
,
state
,
json
)
{};
/**
/**
* Fires after the notification was clicked.
* Fires after the notification was clicked.
*
*
* @param {String} id
* @param {String} id
...
@@ -332,9 +301,9 @@ LocalNotification.prototype = {
...
@@ -332,9 +301,9 @@ LocalNotification.prototype = {
* @param {String} json
* @param {String} json
* A custom (JSON) string
* A custom (JSON) string
*/
*/
onclick
:
function
(
id
,
state
,
json
)
{},
exports
.
onclick
=
function
(
id
,
state
,
json
)
{};
/**
/**
* Fires if the notification was canceled.
* Fires if the notification was canceled.
*
*
* @param {String} id
* @param {String} id
...
@@ -344,40 +313,80 @@ LocalNotification.prototype = {
...
@@ -344,40 +313,80 @@ LocalNotification.prototype = {
* @param {String} json
* @param {String} json
* A custom (JSON) string
* A custom (JSON) string
*/
*/
oncancel
:
function
(
id
,
state
,
json
)
{}
exports
.
oncancel
=
function
(
id
,
state
,
json
)
{};
};
var
plugin
=
new
LocalNotification
(),
channel
=
require
(
'cordova/channel'
);
// Called after all 'deviceready' listener are called
/**
channel
.
deviceready
.
subscribe
(
function
()
{
* @private
// Device is ready now, the listeners are registered and all queued events
*
// can be executed now.
* Merges custom properties with the default values.
cordova
.
exec
(
null
,
null
,
'LocalNotification'
,
'deviceready'
,
[]);
*
});
* @param {Object} options
* Set of custom values
*
* @retrun {Object}
* The merged property list
*/
exports
.
mergeWithDefaults
=
function
(
options
)
{
var
defaults
=
this
.
getDefaults
();
channel
.
onCordovaReady
.
subscribe
(
function
()
{
for
(
var
key
in
defaults
)
{
// The cordova device plugin is ready now
if
(
options
[
key
]
===
undefined
)
{
channel
.
onCordovaInfoReady
.
subscribe
(
function
()
{
options
[
key
]
=
defaults
[
key
];
if
(
device
.
platform
==
'Android'
)
{
}
channel
.
onPause
.
subscribe
(
function
()
{
}
// Necessary to set the state to `background`
cordova
.
exec
(
null
,
null
,
'LocalNotification'
,
'pause'
,
[]);
});
channel
.
onResume
.
subscribe
(
function
()
{
return
options
;
// Necessary to set the state to `foreground`
};
cordova
.
exec
(
null
,
null
,
'LocalNotification'
,
'resume'
,
[]);
});
// Necessary to set the state to `foreground`
/**
cordova
.
exec
(
null
,
null
,
'LocalNotification'
,
'resume'
,
[]);
* @private
*
* Merges the platform specific properties into the default properties.
*
* @return {Object}
* The default properties for the platform
*/
exports
.
applyPlatformSpecificOptions
=
function
()
{
var
defaults
=
this
.
_defaults
;
switch
(
device
.
platform
)
{
case
'Android'
:
defaults
.
icon
=
'icon'
;
defaults
.
smallIcon
=
null
;
defaults
.
ongoing
=
false
;
defaults
.
led
=
'FFFFFF'
;
/*RRGGBB*/
defaults
.
sound
=
'TYPE_NOTIFICATION'
;
break
;
case
'iOS'
:
defaults
.
sound
=
''
;
break
;
case
'WinCE'
:
case
'Win32NT'
:
defaults
.
smallImage
=
null
;
defaults
.
image
=
null
;
defaults
.
wideImage
=
null
;
}
}
// Merges the platform specific properties into the default properties
return
defaults
;
plugin
.
applyPlatformSpecificOptions
();
};
});
});
/**
* @private
*
* Creates a callback, which will be executed within a specific scope.
*
* @param {Function} callbackFn
* The callback function
* @param {Object} scope
* The scope for the function
*
* @return {Function}
* The new callback function
*/
exports
.
createCallbackFn
=
function
(
callbackFn
,
scope
)
{
if
(
typeof
callbackFn
!=
'function'
)
return
;
return
function
()
{
callbackFn
.
apply
(
scope
||
this
,
arguments
);
};
};
module
.
exports
=
plugin
;
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