windows-phone-7 - 如何安排在指定时间向用户发送通知

标签 windows-phone-7 notifications windows-phone-8 windows-phone

在我的应用程序中,我需要安排在指定的日期和时间(例如 5 月 1 日 10:00)向用户发送通知。此时必须显示通知,当用户单击此通知时,我的应用程序应该打开。我看到有两种方法可以做到这一点:

1. 预定通知。
但是,如果我使用 Alarm 类,我无法更改通知的标题(英文版 SDK 中为“Alarm”)。
提醒类最适合我,但是当它出现在锁定屏幕顶部并且用户单击它时,我的应用程序无法打开。
也许有办法绕过这些时刻吗?
此外,我想摆脱带有时间(5分钟、10分钟、1小时等)和“暂停”按钮的列表选择器,但这并不重要。

2. 来自后台代理的 Toast(或平铺)通知。
但我不确定我的后台代理是否在正确的时间运行。据我了解,后台代理由系统运行,它们的启动受到几个因素的限制(手机电池电量、正在运行的应用程序或其他后台代理的存在)。它甚至可能无法启动。有一种方法可以通过使用 LaunchForTest 来强制代理在特定时间运行,但到处都写到此方法只能用于调试目的,并且在发布应用程序之前必须将其删除。
如果我不删除这个方法,我的申请会被认证吗?另外,我不喜欢 toast 通知只打开 10 秒,然后就消失得无影无踪。可以做点什么吗?

我需要保证在正确的时间显示通知,当您单击它时,我的申请已打开。最好的方法是什么?
如果这在 Windows Phone 7 中无法实现,是否有办法在 Windows Phone 8 中执行此操作?

谢谢。

最佳答案

我认为您应该为此使用提醒。当您单击它们时,您的应用程序将打开。 像这样的东西:

var reminder = ScheduledActionService.Find("MyAppReminder");
if (reminder != null)
{
    ScheduledActionService.Remove("MyAppReminder");
}

reminder = new Reminder("MyAppReminder")
{
    Title = "Bla",
    BeginTime = DateTime.Now.AddDays(2),
    Content = message,
    NavigationUri = new Uri("/Start.xaml", UriKind.Relative),
    RecurrenceType = RecurrenceInterval.None
};

ScheduledActionService.Add(reminder);

至于当通知出现在锁定屏幕上时应用程序未打开,这是有道理的。如果您可以直接从锁定屏幕打开应用程序,那将是一个很大的安全漏洞!希望对您有所帮助。

关于windows-phone-7 - 如何安排在指定时间向用户发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15679753/

相关文章:

c# - 如何将对象列表从我的 MainPage.xaml 发送到另一个页面

windows-phone-7 - 可以以编程方式使用新的WP7剪切和粘贴功能吗?

windows-phone-8 - 引用ZXing.Net库

android - 如何在应用启动器图标中显示通知计数

iOS推送通知系统服务器

c# - Windows Phone - 如何首次设置 LocalSettings?

windows-phone-7 - 如何将 DateTime 存储在 Windows Phone 的隔离存储中?

windows-mobile - Visual Studio 2010 中的智能设备项目

c# - 如何查询地址? (LINQ 到 XML)

ios - 点击时清除横幅通知