Difference between revisions of "NotificationManager"
m (Text replacement - "</source>" to "</syntaxhighlight>") |
|||
(13 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
− | '''Supported platforms:''' <br/> | + | <languages /> |
− | '''Available since:''' Gideros 2011.6<br/> | + | <!-- GIDEROSOBJ:NotificationManager --> |
− | === Description === | + | '''<translate>Supported platforms</translate>:''' <br/> |
− | 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. | + | '''<translate>Available since</translate>:''' Gideros 2011.6<br/> |
+ | '''<translate>Inherits from</translate>:''' [[Special:MyLanguage/EventDispatcher|EventDispatcher]]<br/> | ||
+ | === <translate>Description</translate> === | ||
+ | <translate>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. | 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. | + | 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.</translate> |
− | + | === <translate>Examples</translate> === | |
− | + | '''Modifying existing scheduled notification'''<br/> | |
− | + | <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</syntaxhighlight> | ||
+ | '''Checking if notification is stil scheduled'''<br/> | ||
+ | <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</syntaxhighlight> | ||
+ | '''Catching event if app opened from local notification or notification received in background'''<br/> | ||
+ | <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)</syntaxhighlight> | ||
+ | '''Registering for push notifications'''<br/> | ||
+ | <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")</syntaxhighlight> | ||
{|- | {|- | ||
− | | style="width: 50%;"| | + | | style="width: 50%; vertical-align:top;"| |
− | === Methods === | + | === <translate>Methods</translate> === |
− | [[NotificationManager.getSharedInstance]] | + | [[Special:MyLanguage/NotificationManager.getSharedInstance|NotificationManager.getSharedInstance]] ''<translate>get NotificationManager instance</translate>''<br/><!-- GIDEROSMTD:NotificationManager.getSharedInstance() get NotificationManager instance --> |
− | [[NotificationManager:cancelAllNotifications]] | + | [[Special:MyLanguage/NotificationManager:cancelAllNotifications|NotificationManager:cancelAllNotifications]] ''<translate>cancel scheduled notification</translate>''<br/><!-- GIDEROSMTD:NotificationManager:cancelAllNotifications() cancel scheduled notification --> |
− | [[NotificationManager:cancelNotification]] | + | [[Special:MyLanguage/NotificationManager:cancelNotification|NotificationManager:cancelNotification]] ''<translate>cancel specified notification</translate>''<br/><!-- GIDEROSMTD:NotificationManager:cancelNotification() cancel specified notification --> |
− | [[NotificationManager:clearLocalNotifications]] | + | [[Special:MyLanguage/NotificationManager:clearLocalNotifications|NotificationManager:clearLocalNotifications]] ''<translate>clear local notifications</translate>''<br/><!-- GIDEROSMTD:NotificationManager:clearLocalNotifications() clear local notifications --> |
− | [[NotificationManager:clearPushNotifications]] | + | [[Special:MyLanguage/NotificationManager:clearPushNotifications|NotificationManager:clearPushNotifications]] ''<translate>clear push notifications</translate>''<br/><!-- GIDEROSMTD:NotificationManager:clearPushNotifications() clear push notifications --> |
− | [[NotificationManager:getLocalNotifications]] | + | [[Special:MyLanguage/NotificationManager:getLocalNotifications|NotificationManager:getLocalNotifications]] ''<translate>get local notifications</translate>''<br/><!-- GIDEROSMTD:NotificationManager:getLocalNotifications() get local notifications --> |
− | [[NotificationManager:getPushNotifications]] | + | [[Special:MyLanguage/NotificationManager:getPushNotifications|NotificationManager:getPushNotifications]] ''<translate>get push notification</translate>''<br/><!-- GIDEROSMTD:NotificationManager:getPushNotifications() get push notification --> |
− | [[NotificationManager:getScheduledNotifications]] | + | [[Special:MyLanguage/NotificationManager:getScheduledNotifications|NotificationManager:getScheduledNotifications]] ''<translate>get schedule notifications</translate>''<br/><!-- GIDEROSMTD:NotificationManager:getScheduledNotifications() get schedule notifications --> |
− | [[NotificationManager:registerForPushNotifications]] | + | [[Special:MyLanguage/NotificationManager:registerForPushNotifications|NotificationManager:registerForPushNotifications]] ''<translate>register for push notifications</translate>''<br/><!-- GIDEROSMTD:NotificationManager:registerForPushNotifications() register for push notifications --> |
− | [[NotificationManager:unregisterForPushNotifications]] | + | [[Special:MyLanguage/NotificationManager:unregisterForPushNotifications|NotificationManager:unregisterForPushNotifications]] ''<translate>unregister from notifications</translate>''<br/><!-- GIDEROSMTD:NotificationManager:unregisterForPushNotifications() unregister from notifications --> |
− | | style="width: 50%;"| | + | | style="width: 50%; vertical-align:top;"| |
− | === Events === | + | === <translate>Events</translate> === |
− | [[Event.LOCAL_NOTIFICATION]] | + | [[Special:MyLanguage/Event.LOCAL_NOTIFICATION|Event.LOCAL_NOTIFICATION]]<br/><!-- GIDEROSEVT:Event.LOCAL_NOTIFICATION localNotification--> |
− | [[Event.PUSH_NOTIFICATION]] | + | [[Special:MyLanguage/Event.PUSH_NOTIFICATION|Event.PUSH_NOTIFICATION]]<br/><!-- GIDEROSEVT:Event.PUSH_NOTIFICATION pushNotification--> |
− | [[Event.PUSH_REGISTRATION]] | + | [[Special:MyLanguage/Event.PUSH_REGISTRATION|Event.PUSH_REGISTRATION]]<br/><!-- GIDEROSEVT:Event.PUSH_REGISTRATION pushRegistration--> |
− | [[Event.PUSH_REGISTRATION_ERROR]] | + | [[Special:MyLanguage/Event.PUSH_REGISTRATION_ERROR|Event.PUSH_REGISTRATION_ERROR]]<br/><!-- GIDEROSEVT:Event.PUSH_REGISTRATION_ERROR pushRegistrationError--> |
− | === Constants === | + | === <translate>Constants</translate> === |
|} | |} |
Latest revision as of 14:31, 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
--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
Checking if notification is stil scheduled
--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
Catching event if app opened from local notification or notification received in background
--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)
Registering for push notifications
--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")
MethodsNotificationManager.getSharedInstance get NotificationManager instance |
EventsEvent.LOCAL_NOTIFICATION Constants |