iOS本地通知测试

iOS本地通知测试,ios,datetime,testing,xamarin,uilocalnotification,Ios,Datetime,Testing,Xamarin,Uilocalnotification,在测试本地通知时,由于某些原因,在iOS设备上设置日期和时间不会触发本地通知的出现。我的通知的生效日期设定为未来几天。如果我等几天,我会看到我的本地通知 为什么通过设置设备上的日期和时间,我看不到本地通知 以下是一个示例: playNotification.FireDate = DateTime.Now.AddHours(71.67f); playNotification.AlertAction = "Alert text";

在测试本地通知时,由于某些原因,在iOS设备上设置日期和时间不会触发本地通知的出现。我的通知的生效日期设定为未来几天。如果我等几天,我会看到我的本地通知

为什么通过设置设备上的日期和时间,我看不到本地通知

以下是一个示例:

            playNotification.FireDate = DateTime.Now.AddHours(71.67f);
            playNotification.AlertAction = "Alert text";
            playNotification.AlertBody = "Alert body";
            playNotification.SoundName = UILocalNotification.DefaultSoundName;
            playNotification.ApplicationIconBadgeNumber = badgeCount;
            UIApplication.SharedApplication.ScheduleLocalNotification(playNotification);

我应该提到,我将“AddHours”更改为“AddSeconds”,并通过等待指定的秒数进行测试,并按预期触发通知。但不知何故,在我的设备上更改日期和时间是不行的。

您需要设置通知的
时区。默认情况下,
时区
是根据您的位置设置的,因此手动更改日期和时间时不会产生影响。为此,需要将
时区设置为
systemTimeZone()

像这样:

    notification.timeZone = NSTimeZone.systemTimeZone()
我知道这是用swift写的,但我对objective-c知之甚少。
希望这有帮助。:)

这很奇怪。我使用同样的方法来测试本地通知,如果我更改了设备上的日期,它就会起作用。你能给我们提供一些代码吗?好的,我已经编辑了我的问题来添加示例代码。什么是
DateTime.Now.AddHours(71.67f)
返回?无论如何。。。试试这个
playNotification.FireDate=[[NSDate-date]dateByAddingTimeInterval:10](在10秒内进入主屏幕以确保您收到本地通知)我尝试了类似的操作,将“AddHours”更改为“AddSeconds”,等待指定的秒数,并按预期触发了我的通知。AddHours(71.67)返回的日期时间为3天减去20分钟。我测试了这个,它确实给了我期望的值。请记录
DateTime.Now.AddHours(71.67f)
并将其添加到问题中,因为
NSDate
可能有问题。这个问题与时区的变化无关。是的。我在测试我的应用程序时遇到了同样的问题,并且在更改手机上的时间和日期时不会发出通知。当我将时区从默认设置更改为系统设置后,在手机上手动设置时间时,会发出通知。请尝试并测试代码,并在否决投票前理解我想说的话。