这似乎在 Windows 8.1 Universal Store App 中运行良好,但在 Windows Phone 8.1 Universal Store App 中却不行。是否可以像在 Windows 平板电脑上一样对其进行调整以在 Windows 手机上工作?
XML 文件:
<toast duration="long" launch="alarm(eb6c47a8-e5e2-40d0-bc4e-3aa957f36484)">
<visual>
<binding template="ToastImageAndText04">
<text id="1">Alarm App</text>
<text id="2">Alarm Test</text>
<text id="3">Time to wake up!</text>
</binding>
</visual>
<audio loop="true" src="ms-winsoundevent:Notification.Looping.Alarm2" />
<commands scenario="alarm">
<command id="snooze" />
<command id="dismiss" />
</commands>
</toast>
通知类:
public class Notification
{
public async Task CreateNotification()
{
StorageFolder storageFolder = Package.Current.InstalledLocation;
var toast = await storageFolder.GetFileAsync("toast.xml");
var xml = await FileIO.ReadTextAsync(toast);
NotifyScheduled(xml);
}
private void NotifyScheduled(string toast, int delay = 5, int snooze = 300, int maxSnoozeCount = 3)
{
XmlDocument document = new XmlDocument();
document.LoadXml(toast);
var notifier = ToastNotificationManager.CreateToastNotifier();
var scheduledToast = new ScheduledToastNotification(document, DateTime.Now.AddSeconds(delay), TimeSpan.FromSeconds(snooze), (uint)maxSnoozeCount);
notifier.AddToSchedule(scheduledToast);
}
}
并在 Phone 的 xaml.cs 页面中实现:
var note = new Notification();
note.CreateNotification();
结果应如下所示:
但它目前只是做一个像这样的常规吐司通知(它不会一直响起警报,直到你像需要的那样关闭或打盹):
就像我提到的,我可以让它在 Windows 平板电脑(Windows 8.1)中正常工作,它看起来像这样:
编辑:值得注意的是,如果您的平板电脑设备没有将您的应用程序分配为默认警报应用程序(只能分配一个) ,您不会获得贪睡/关闭按钮。但是,在 Windows Phone 8.1 中,没有选项可以定义默认警报应用程序可以是什么。