2016-06-09 64 views
0

我在Corona中有一些代码在应用程序启动后60秒触发通知。它看起来像这样:Corona SDK - 重复通知

local notifications = require("plugin.notifications") 
-- Set up notification options 
local notificationOptions = { 
    alert = "Wake up!", 
    badge = 2, 
    sound = "alarm.caf", 
    custom = { foo = "bar" } 
} 
local notification1 = notifications.scheduleNotification(60, notificationOptions) 

但是,我不能,但是,找到如何使这个周期性。例如,每分钟一次,每小时一次,在特定时间每天一次等。

任何想法如何做到这一点?

谢谢。

问候, 谢尔班

回答

1

我认为你需要在一个循环中运行它,像这样(为每分钟一小时):

local notificationTable = []  
    for i=1,60 do 
    local time = 60*i 
    local handle = notifications.scheduleNotification(time, notificationOptions) 
    notificationTable[time] = handle 
    end 

注:该代码没有经过测试和阵列中可能有其他更好的方法,但这应该给你一个想法。 对于特定的时间,您将需要使用UTC时间,而不是从现在开始的秒数。

一个表格,指示传递通知的协调世界时(UTC)。该表应该包含与os.date(“!* t”)返回的属性相同的属性。请注意,常见的错误是传递“* t”而不是“!* t”,这会导致您在当前时区中给出的时间而不是UTC时间。

https://docs.coronalabs.com/daily/plugin/notifications/scheduleNotification.html

希望有所帮助。

+0

是的,这有助于。我希望不必循环,因为取消特定通知会更困难。 –

+0

您可以创建一个包含所有通知句柄的表格。您还可以在关键值为时间的情况下添加键值对,因此您可以根据时间取消通知...我将更新我的答案以反映这一点。 – FelixB

+0

不错的主意。谢谢。这就是我想要的 - 取消单个通知,而不是全部。 –