local-notification.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /**
  2. * locale-notification.js
  3. * Cordova LocalNotification Plugin
  4. *
  5. * Created by Sebastian Katzer (github.com/katzer) on 10/08/2013.
  6. * Copyright 2013 Sebastian Katzer. All rights reserved.
  7. * GPL v2 licensed
  8. */
  9. var LocalNotification = function () {
  10. };
  11. LocalNotification.prototype = {
  12. /**
  13. * Fügt einen neuen Eintrag zur Registry hinzu.
  14. *
  15. * @param {Object} options
  16. * @return {Number} Die ID der Notification
  17. */
  18. add: function (options) {
  19. var defaults = {
  20. date: new Date(),
  21. message: '',
  22. title: '',
  23. badge: 0,
  24. id: 0,
  25. repeat: '',
  26. background: undefined,
  27. foreground: undefined
  28. };
  29. switch (device.platform) {
  30. case 'Android':
  31. defaults.icon = 'icon';
  32. defaults.sound = 'TYPE_NOTIFICATION'; break;
  33. case 'iOS':
  34. defaults.sound = ''; break;
  35. case 'WinCE': case 'Win32NT':
  36. defaults.smallImage = null;
  37. defaults.image = null;
  38. defaults.wideImage = null;
  39. };
  40. var callbackFn = function (cmd) {
  41. eval(cmd);
  42. };
  43. for (var key in defaults) {
  44. if (options[key] !== undefined) {
  45. defaults[key] = options[key];
  46. }
  47. }
  48. if (defaults.id) {
  49. defaults.id = defaults.id.toString();
  50. }
  51. if (typeof defaults.date == 'object') {
  52. defaults.date = Math.round(defaults.date.getTime()/1000);
  53. }
  54. cordova.exec(callbackFn, null, 'LocalNotification', 'add', [defaults]);
  55. return defaults.id;
  56. },
  57. /**
  58. * Entfernt die angegebene Notification.
  59. *
  60. * @param {String} id
  61. */
  62. cancel: function (id) {
  63. cordova.exec(null, null, 'LocalNotification', 'cancel', [id.toString()]);
  64. },
  65. /**
  66. * Entfernt alle registrierten Notifications.
  67. */
  68. cancelAll: function () {
  69. cordova.exec(null, null, 'LocalNotification', 'cancelAll', []);
  70. }
  71. };
  72. var plugin = new LocalNotification();
  73. module.exports = plugin;