mirror of
https://github.com/purplecabbage/phonegap-plugins.git
synced 2026-01-14 08:57:53 -05:00
- Added the ability to have the notification ID included in the callback. - Fixed spelling of 'foreground' - updated read me, as well as supporting blogpost
132 lines
3.1 KiB
JavaScript
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);
|
|
}
|
|
}; |