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
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
347 additions
and
338 deletions
+347
-338
local-notification.js
www/local-notification.js
+347
-338
No files found.
www/local-notification.js
View file @
a2b77a2f
...
...
@@ -19,365 +19,374 @@
under the License.
*/
var
LocalNotification
=
function
()
{
this
.
_defaults
=
{
message
:
''
,
title
:
''
,
autoCancel
:
false
,
badge
:
0
,
id
:
'0'
,
json
:
''
,
repeat
:
''
};
};
LocalNotification
.
prototype
=
{
/**
* Returns the default settings
*
* @return {Object}
*/
getDefaults
:
function
()
{
return
this
.
_defaults
;
},
/**
* Overwrite default settings
*
* @param {Object} defaults
*/
setDefaults
:
function
(
newDefaults
)
{
var
defaults
=
this
.
getDefaults
();
for
(
var
key
in
defaults
)
{
if
(
newDefaults
[
key
]
!==
undefined
)
{
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
*
* @param {Object} options
* The notification properties
* @param {Function} callback
* A function to be called after the notification has been canceled
* @param {Object} scope
* The scope for the callback function
*
* @return {Number}
* The notification's ID
*/
add
:
function
(
options
,
callback
,
scope
)
{
var
options
=
this
.
mergeWithDefaults
(
options
),
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
if
(
options
.
id
)
{
options
.
id
=
options
.
id
.
toString
();
}
if
(
options
.
date
===
undefined
)
{
options
.
date
=
new
Date
();
}
if
(
options
.
title
)
{
options
.
title
=
options
.
title
.
toString
();
}
if
(
options
.
message
)
{
options
.
message
=
options
.
message
.
toString
();
}
if
(
typeof
options
.
date
==
'object'
)
{
options
.
date
=
Math
.
round
(
options
.
date
.
getTime
()
/
1000
);
}
if
([
'WinCE'
,
'Win32NT'
].
indexOf
(
device
.
platform
)
>
-
1
)
{
fn
=
function
(
cmd
)
{
eval
(
cmd
);
};
}
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'add'
,
[
options
]);
return
options
.
id
;
},
/**
* Cancels the specified notification.
*
* @param {String} id
* The ID of the notification
* @param {Function} callback
* A function to be called after the notification has been canceled
* @param {Object} scope
* The scope for the callback function
*/
cancel
:
function
(
id
,
callback
,
scope
)
{
var
id
=
id
.
toString
(),
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'cancel'
,
[
id
]);
},
/**
* Removes all previously registered notifications.
*
* @param {Function} callback
* A function to be called after all notifications have been canceled
* @param {Object} scope
* The scope for the callback function
*/
cancelAll
:
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'cancelAll'
,
[]);
},
/**
* Retrieves a list with all currently pending notifications.
*
* @param {Function} callback
* A callback function to be called with the list
* @param {Object} scope
* The scope for the callback function
*/
getScheduledIds
:
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'getScheduledIds'
,
[]);
},
/**
* Checks wether a notification with an ID is scheduled.
*
* @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
*/
isScheduled
:
function
(
id
,
callback
,
scope
)
{
var
id
=
id
.
toString
(),
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'isScheduled'
,
[
id
]);
},
/**
* Retrieves a list with all triggered notifications.
*
* @param {Function} callback
* A callback function to be called with the list
* @param {Object} scope
* The scope for the callback function
*/
getTriggeredIds
:
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'getTriggeredIds'
,
[]);
},
/**
* Checks wether a notification with an ID was triggered.
*
* @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
*/
isTriggered
:
function
(
id
,
callback
,
scope
)
{
var
id
=
id
.
toString
(),
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'isTriggered'
,
[
id
]);
},
/**
* Informs if the app has the permission to show badges.
*
* @param {Function} callback
* The function to be exec as the callback
* @param {Object?} scope
* The callback function's scope
*/
hasPermission
:
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
if
(
device
.
platform
==
'iOS'
)
{
cordova
.
exec
(
fn
,
null
,
'LocalNotification'
,
'hasPermission'
,
[]);
}
else
if
(
fn
)
{
fn
(
true
);
}
},
/**
* Ask for permission to show badges if not already granted.
*/
promptForPermission
:
function
()
{
if
(
device
.
platform
==
'iOS'
)
{
cordova
.
exec
(
null
,
null
,
'LocalNotification'
,
'promptForPermission'
,
[]);
}
},
/**
* Occurs when a notification was added.
*
* @param {String} id
* The ID of the notification
* @param {String} state
* Either "foreground" or "background"
* @param {String} json
* A custom (JSON) string
*/
onadd
:
function
(
id
,
state
,
json
)
{},
/**
* Occurs when the notification is triggered.
*
* @param {String} id
* The ID of the notification
* @param {String} state
* Either "foreground" or "background"
* @param {String} json
* A custom (JSON) string
*/
ontrigger
:
function
(
id
,
state
,
json
)
{},
/**
* Fires after the notification was clicked.
*
* @param {String} id
* The ID of the notification
* @param {String} state
* Either "foreground" or "background"
* @param {String} json
* A custom (JSON) string
*/
onclick
:
function
(
id
,
state
,
json
)
{},
/**
* Fires if the notification was canceled.
*
* @param {String} id
* The ID of the notification
* @param {String} state
* Either "foreground" or "background"
* @param {String} json
* A custom (JSON) string
*/
oncancel
:
function
(
id
,
state
,
json
)
{}
};
var
plugin
=
new
LocalNotification
(),
var
exec
=
require
(
'cordova/exec'
),
channel
=
require
(
'cordova/channel'
);
// Called after all 'deviceready' listener are called
// Called after 'deviceready' event
channel
.
deviceready
.
subscribe
(
function
()
{
// Device is ready now, the listeners are registered
and all queued events
//
can be executed now
.
cordova
.
exec
(
null
,
null
,
'LocalNotification'
,
'deviceready'
,
[]);
// 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`
cordova
.
exec
(
null
,
null
,
'LocalNotification'
,
'pause'
,
[]);
exec
(
null
,
null
,
'LocalNotification'
,
'pause'
,
[]);
});
channel
.
onResume
.
subscribe
(
function
()
{
// Necessary to set the state to `foreground`
cordova
.
exec
(
null
,
null
,
'LocalNotification'
,
'resume'
,
[]);
exec
(
null
,
null
,
'LocalNotification'
,
'resume'
,
[]);
});
// Necessary to set the state to `foreground`
cordova
.
exec
(
null
,
null
,
'LocalNotification'
,
'resume'
,
[]);
exec
(
null
,
null
,
'LocalNotification'
,
'resume'
,
[]);
}
// Merges the platform specific properties into the default properties
plugin
.
applyPlatformSpecificOptions
();
exports
.
applyPlatformSpecificOptions
();
});
});
module
.
exports
=
plugin
;
/**
* @private
*
* Default values.
*/
exports
.
_defaults
=
{
message
:
''
,
title
:
''
,
autoCancel
:
false
,
badge
:
0
,
id
:
'0'
,
json
:
''
,
repeat
:
''
};
/**
* Returns the default settings
*
* @return {Object}
*/
exports
.
getDefaults
=
function
()
{
return
this
.
_defaults
;
};
/**
* Overwrite default settings
*
* @param {Object} defaults
*/
exports
.
setDefaults
=
function
(
newDefaults
)
{
var
defaults
=
this
.
getDefaults
();
for
(
var
key
in
defaults
)
{
if
(
newDefaults
[
key
]
!==
undefined
)
{
defaults
[
key
]
=
newDefaults
[
key
];
}
}
};
/**
* Add a new entry to the registry
*
* @param {Object} props
* The notification properties
* @param {Function} callback
* A function to be called after the notification has been canceled
* @param {Object} scope
* The scope for the callback function
*
* @return {Number}
* The notification's ID
*/
exports
.
add
=
function
(
props
,
callback
,
scope
)
{
var
options
=
this
.
mergeWithDefaults
(
options
),
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
if
(
options
.
id
)
{
options
.
id
=
options
.
id
.
toString
();
}
if
(
options
.
date
===
undefined
)
{
options
.
date
=
new
Date
();
}
if
(
options
.
title
)
{
options
.
title
=
options
.
title
.
toString
();
}
if
(
options
.
message
)
{
options
.
message
=
options
.
message
.
toString
();
}
if
(
typeof
options
.
date
==
'object'
)
{
options
.
date
=
Math
.
round
(
options
.
date
.
getTime
()
/
1000
);
}
if
([
'WinCE'
,
'Win32NT'
].
indexOf
(
device
.
platform
)
>
-
1
)
{
fn
=
function
(
cmd
)
{
eval
(
cmd
);
};
}
exec
(
fn
,
null
,
'LocalNotification'
,
'add'
,
[
options
]);
return
options
.
id
;
};
/**
* Cancels the specified notification.
*
* @param {String} id
* The ID of the notification
* @param {Function} callback
* A function to be called after the notification has been canceled
* @param {Object} scope
* The scope for the callback function
*/
exports
.
cancel
=
function
(
id
,
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
exec
(
fn
,
null
,
'LocalNotification'
,
'cancel'
,
[
id
.
toString
()]);
};
/**
* Removes all previously registered notifications.
*
* @param {Function} callback
* A function to be called after all notifications have been canceled
* @param {Object} scope
* The scope for the callback function
*/
exports
.
cancelAll
=
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
exec
(
fn
,
null
,
'LocalNotification'
,
'cancelAll'
,
[]);
};
/**
* Retrieves a list with all currently pending notifications.
*
* @param {Function} callback
* A callback function to be called with the list
* @param {Object} scope
* The scope for the callback function
*/
exports
.
getScheduledIds
=
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
exec
(
fn
,
null
,
'LocalNotification'
,
'getScheduledIds'
,
[]);
};
/**
* Checks wether a notification with an ID is scheduled.
*
* @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
.
isScheduled
=
function
(
id
,
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
exec
(
fn
,
null
,
'LocalNotification'
,
'isScheduled'
,
[
id
.
toString
()]);
};
/**
* Retrieves a list with all triggered notifications.
*
* @param {Function} callback
* A callback function to be called with the list
* @param {Object} scope
* The scope for the callback function
*/
exports
.
getTriggeredIds
=
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
exec
(
fn
,
null
,
'LocalNotification'
,
'getTriggeredIds'
,
[]);
};
/**
* Checks wether a notification with an ID was triggered.
*
* @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
.
isTriggered
=
function
(
id
,
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
exec
(
fn
,
null
,
'LocalNotification'
,
'isTriggered'
,
[
id
.
toString
()]);
};
/**
* Informs if the app has the permission to show notifications.
*
* @param {Function} callback
* The function to be exec as the callback
* @param {Object?} scope
* The callback function's scope
*/
exports
.
hasPermission
=
function
(
callback
,
scope
)
{
var
fn
=
this
.
createCallbackFn
(
callback
,
scope
);
if
(
device
.
platform
!=
'iOS'
)
{
fn
(
true
);
return
;
}
exec
(
fn
,
null
,
'LocalNotification'
,
'hasPermission'
,
[]);
};
/**
* 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
*/
exports
.
promptForPermission
=
function
(
callback
,
scope
)
{
if
(
device
.
platform
!=
'iOS'
)
return
;
exec
(
null
,
null
,
'LocalNotification'
,
'promptForPermission'
,
[]);
};
/**
* Occurs when a notification was added.
*
* @param {String} id
* The ID of the notification
* @param {String} state
* Either "foreground" or "background"
* @param {String} json
* A custom (JSON) string
*/
exports
.
onadd
=
function
(
id
,
state
,
json
)
{};
/**
* Occurs when the notification is triggered.
*
* @param {String} id
* The ID of the notification
* @param {String} state
* Either "foreground" or "background"
* @param {String} json
* A custom (JSON) string
*/
exports
.
ontrigger
=
function
(
id
,
state
,
json
)
{};
/**
* Fires after the notification was clicked.
*
* @param {String} id
* The ID of the notification
* @param {String} state
* Either "foreground" or "background"
* @param {String} json
* A custom (JSON) string
*/
exports
.
onclick
=
function
(
id
,
state
,
json
)
{};
/**
* Fires if the notification was canceled.
*
* @param {String} id
* The ID of the notification
* @param {String} state
* Either "foreground" or "background"
* @param {String} json
* A custom (JSON) string
*/
exports
.
oncancel
=
function
(
id
,
state
,
json
)
{};
/**
* @private
*
* Merges custom properties with the default values.
*
* @param {Object} options
* Set of custom values
*
* @retrun {Object}
* The merged property list
*/
exports
.
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
*/
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
;
}
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
*/
exports
.
createCallbackFn
=
function
(
callbackFn
,
scope
)
{
if
(
typeof
callbackFn
!=
'function'
)
return
;
return
function
()
{
callbackFn
.
apply
(
scope
||
this
,
arguments
);
};
};
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