Files
Drew Dahlman 2e175f3387 Updates to LocalNotifications
- Added the ability to have the notification ID included in the
callback.

- Fixed spelling of 'foreground'

- updated read me, as well as supporting blogpost
2012-05-16 08:33:03 -06:00

132 lines
3.1 KiB
JavaScript

// JavaScript Document
// PROJECT: Phonegap LocalNotifications
// AUTHOR: Drew Dahlman ( www.drewdahlman.com )
// DATE: 1.26.2012
/*
NOTES:
We will be creating LocalNotifications that can be set to fire while app is inactive,
and create a callback for the JS to know when the app has come back from a notification.
One thing that is deceptive about the LocalNotifications plugin is that when it shows a notification
has been created it shows it based on the timezone +0000 which can throw you off.
in the call for setting the notification we simply call notification.local_timed("13:00") - note that I supplied a string.
The ability to set repeating notifications has been added!
- daily
- weekly
- monthly
- yearly
*/
// NOTIFICATION CENTER
/*
I like to set up one object that's only job is to manage notifications
*/
var notification = {
init:function(){
},
// This will fire after 60 seconds
local_min:function(){
var d = new Date();
d = d.getTime() + 60*1000; //60 seconds from now
d = new Date(d);
plugins.localNotification.add({
date: d,
repeat:'daily',
message: 'This just fired after a minute!',
hasAction: true,
badge: 1,
id: '1',
sound:'horn.caf',
background:'app.background',
foreground:'app.running'
});
},
// This will fire based on the time provided.
// Something to note is that the iPhone goes off of 24hr time
// it defaults to no timezone adjustment so +0000 !IMPORTANT
local_timed:function(hh,mm){
// the example time we provide is 13:00
// This means the alarm will go off at 1pm +0000
// how does this translate to your time? While the phone schedules 1pm +0000
// it will still go off at your desired time base on your phones time.
console.log(hh+" "+mm);
// Now lets make a new date
var d = new Date();
d = d.setSeconds(00);
d = new Date(d);
d = d.setMinutes(mm);
d = new Date(d);
d = d.setHours(hh);
d = new Date(d);
plugins.localNotification.add({
date: d,
repeat:'daily',
message: 'This went off just as expected!',
hasAction: true,
badge: 1,
id: '2',
sound:'horn.caf',
background:'app.background',
foreground:'app.running'
});
},
clear:function(){
plugins.localNotification.cancelAll();
},
tomorrow:function(hh,mm,days){
// Now lets make a new date
var d = new Date();
d = d.setSeconds(00);
d = new Date(d);
d = d.setMinutes(mm);
d = new Date(d);
d = d.setHours(hh);
d = new Date(d);
// add a day
d = d.setDate(d.getDate()+days);
d = new Date(d);
plugins.localNotification.add({
date: d,
repeat:'daily',
message: 'This went off just as expected!',
hasAction: true,
badge: 1,
id: '3',
sound:'horn.caf',
background:'app.background',
foreground:'app.running'
});
}
}
// APP
var app = {
bodyLoad:function(){
document.addEventListener("deviceready", app.deviceReady, false);
},
deviceReady:function(){
app.init();
},
init:function(){
},
background:function(id){
console.log("I was in the background but i'm back now! ID="+id);
},
running:function(id){
console.log("I am currently running, what should I do? ID="+id);
}
};