Difference between revisions of "NotificationManager"

From GiderosMobile
m (Text replacement - "<source" to "<syntaxhighlight")
Line 13: Line 13:
 
=== <translate>Examples</translate> ===
 
=== <translate>Examples</translate> ===
 
'''Modifying existing scheduled notification'''<br/>
 
'''Modifying existing scheduled notification'''<br/>
<source lang="lua">--id of notification to modify
+
<syntaxhighlight lang="lua">--id of notification to modify
 
local id = 1
 
local id = 1
  
Line 33: Line 33:
 
end</source>
 
end</source>
 
'''Checking if notification is stil scheduled'''<br/>
 
'''Checking if notification is stil scheduled'''<br/>
<source lang="lua">--id of notification to check
+
<syntaxhighlight lang="lua">--id of notification to check
 
local id = 1
 
local id = 1
  
Line 47: Line 47:
 
end</source>
 
end</source>
 
'''Catching event if app opened from local notification or notification received in background'''<br/>
 
'''Catching event if app opened from local notification or notification received in background'''<br/>
<source lang="lua">--retrieve shared instance
+
<syntaxhighlight lang="lua">--retrieve shared instance
 
local mngr = NotificationManager.getSharedInstance()
 
local mngr = NotificationManager.getSharedInstance()
  
Line 60: Line 60:
 
end)</source>
 
end)</source>
 
'''Registering for push notifications'''<br/>
 
'''Registering for push notifications'''<br/>
<source lang="lua">--retrieve shared instance
+
<syntaxhighlight lang="lua">--retrieve shared instance
 
local mngr = NotificationManager.getSharedInstance()
 
local mngr = NotificationManager.getSharedInstance()
  

Revision as of 14:30, 13 July 2023


Supported platforms:
Available since: Gideros 2011.6
Inherits from: EventDispatcher

Description

NotificationManager is the class that allows you to manage scheduled and received notifications. This is a class with a single instance which can be retrieved using getSharedInstance() and can not have any new instances.

With NotificationManager you can retrieve information about all scheduled local notifications, all received local notifications and all received push notifications. As well as clear all type of notifications and cancel scheduled notifications.

NotificationManager instance also receives events about notification being clicked and app opened through that specific notification. As well as registration for push notification event or registration error.

Examples

Modifying existing scheduled notification
<syntaxhighlight lang="lua">--id of notification to modify local id = 1

--retrieve shared instance local mngr = NotificationManager.getSharedInstance()

--retrieve table with scheduled notifications local t = mngr:getScheduledNotifications()

--check if id is in it if t[id] then --notification is still scheduled --let's modify it by creating new instance with same id local note = Notification.new(id) note:setTitle("New title") note:setMessage("New message") --if we want to modify dispatch time we need to redispatch it note:dispatchAfter({day = 1}) end</source> Checking if notification is stil scheduled
<syntaxhighlight lang="lua">--id of notification to check local id = 1

--retrieve shared instance local mngr = NotificationManager.getSharedInstance()

--retrieve table with scheduled notifications local t = mngr:getScheduledNotifications()

--check if id is in it if t[id] then --notification is still scheduled end</source> Catching event if app opened from local notification or notification received in background
<syntaxhighlight lang="lua">--retrieve shared instance local mngr = NotificationManager.getSharedInstance()

mngr:addEventListener(Event.LOCAL_NOTIFICATION, function(e) --getting id of notification local id = e.id

--printing other information print("Title: "..e.title) print("Text: "..e.message) print("Number: "..e.number) end)</source> Registering for push notifications
<syntaxhighlight lang="lua">--retrieve shared instance local mngr = NotificationManager.getSharedInstance()

--if registration completed succesfully mngr:addEventListener(Event.PUSH_REGISTRATION, function(e) --getting device token local token = e.deviceToken

--sending token to your server local loader = UrlLoader.new("http://yourdomain.com/register.php?token="..token) loader:addEventListener(Event.COMPLETE, function() --token succesfuly deliverd end) end)

--if registration failed mngr:addEventListener(Event.PUSH_REGISTRATION_ERROR, function(e) --device could not been registered now --try again later print(e.error) end)


--try to register for push notifications mngr:registerForPushNotifications("953841987672")</source>

Methods

NotificationManager.getSharedInstance get NotificationManager instance
NotificationManager:cancelAllNotifications cancel scheduled notification
NotificationManager:cancelNotification cancel specified notification
NotificationManager:clearLocalNotifications clear local notifications
NotificationManager:clearPushNotifications clear push notifications
NotificationManager:getLocalNotifications get local notifications
NotificationManager:getPushNotifications get push notification
NotificationManager:getScheduledNotifications get schedule notifications
NotificationManager:registerForPushNotifications register for push notifications
NotificationManager:unregisterForPushNotifications unregister from notifications

Events

Event.LOCAL_NOTIFICATION
Event.PUSH_NOTIFICATION
Event.PUSH_REGISTRATION
Event.PUSH_REGISTRATION_ERROR

Constants