Я сейчас нахожусь в процессе настройки уведомлений pu sh для нашего приложения, написанного на Unity (C#). Код в проекте ниже.
(В итоге: я получаю текущее время пользователя, в которое он вошел в систему, и назначаю его в качестве времени уведомления pu sh для соответствующего дня недели. Если в других случаях время равно нулю) дни недели (0-6), я назначаю это время и этим, в противном случае они остаются одни, поскольку в этом случае им ранее было назначено подходящее время для дня.)
Теперь, Я установил триггер уведомлений для дня, часа и минуты следующего уведомления и установил для «Repeats» значение true. В документации говорится, что уведомление будет повторяться каждый «определенный период времени» - поэтому я предполагаю, например, если я установил День на 6 февраля, а часы и минуты на 12: 34p, то это будет повторяться каждый 6 февраля в 12: 34p.
Я хотел бы, чтобы уведомления повторялись еженедельно. Это было просто в Xcode, потому что вы могли установить «День недели», а не заданный c день, как здесь. Есть ли какое-нибудь решение сделать повторение уведомления по дням недели?
private void IOSNotificationManager()
{
// determine whether user has already allowed or disallowed notifications--won't run again if user has already made decision
StartCoroutine(RequestAuthorization());
// Schedule daily notification for user based on time of play
// iOS uses local time, while Android uses UTC
DateTime userTime = DateTime.Now;
// Set a reminder for this specific day of the week (0 = Sunday, 6 = Saturday).
// Note that this will overwrite any previous time set for this day.
GameData.PushNotificationTimes[(int)userTime.DayOfWeek] = userTime;
// Schedule the week of push notifications for days that haven't already been scheduled
for (var i = 0; i < 7; i++)
{
if (GameData.PushNotificationTimes[i] == null)
{
// get the number of days after which the notification should occur
int daysToNotification = (i - (int)userTime.DayOfWeek + 7) % 7;
DateTime nextDay = userTime.AddDays(daysToNotification);
GameData.PushNotificationTimes[i] = nextDay;
}
Debug.Log("The push notification time scheduled for day " + i + " is " + GameData.PushNotificationTimes[i]);
}
for (var i = 0; i < 7; i++)
{
DateTime pushNotificationTime = GameData.PushNotificationTimes[i];
var calendarTrigger = new iOSNotificationCalendarTrigger()
{
Day = pushNotificationTime.Day,
Hour = pushNotificationTime.Hour,
Minute = pushNotificationTime.Minute,
// Indicate whether the notification is repeated every defined time period.
// For instance if hour and minute fields are set the notification will be triggered every day at the specified hour and minute.
Repeats = true
};
}
}