2016-06-09 75 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

不錯的主意。謝謝。這就是我想要的 - 取消單個通知,而不是全部。 –