UWP Toast 通知 - XML 有效,AdaptiveText 无效(Windows 10,Visual Studio 2017)
UWP Toast Notifications - XML works, AdaptiveText does not (Windows 10, Visual Studio 2017)
我在后台任务中将 Toasts 设置为 运行。如果我为 toast 定义 XML "old" 方式,一切正常。这是相关代码:
var template = ToastTemplateType.ToastText02;
var xml = ToastNotificationManager.GetTemplateContent(template);
var elements = xml.GetElementsByTagName("text");
var text = xml.CreateTextNode(model.Title);
elements[0].AppendChild(text);
var toast = new ToastNotification(xml);
ToastNotificationManager.CreateToastNotifier("My App").Show(toast);
如果我尝试使用 AdaptiveText
版本,它不会 运行。事件查看器日志表明已成功发送 toast 消息(就像处理第一条消息一样),但没有出现 toast。这是代码(我 copy/pasted 直接来自 microsoft.com 上的教程):
var content = new ToastContent()
{
Launch = "app-defined-string",
Visual = new ToastVisual()
{
BindingGeneric = new ToastBindingGeneric()
{
Children =
{
new AdaptiveText()
{
Text = "Photo Share"
},
new AdaptiveText()
{
Text = "Andrew sent you a picture"
},
new AdaptiveText()
{
Text = "See it in full size!"
},
new AdaptiveImage()
{
Source = "https://unsplash.it/360/180?image=1043"
}
},
AppLogoOverride = new ToastGenericAppLogo()
{
Source = "https://unsplash.it/64?image=883",
HintCrop = ToastGenericAppLogoCrop.Circle
}
}
}
};
var toast = new Windows.UI.Notifications.ToastNotification(content.GetXml())
{
ExpirationTime = DateTime.Now.AddDays(model.Expiration)
};
toast.Failed += (o, args) =>
{
var message = args.ErrorCode;
};
Windows.UI.Notifications.ToastNotificationManager.CreateToastNotifier("My App").Show(toast);
我有 OS Build 15063——与我的应用程序目标相同。我有一个发生这种情况的模板 10 项目,所以我尝试创建一个新的非模板 10 项目,但问题仍然存在。我也尝试过使用 NuGet 的 NotificationExtensions.10
库,或者 Windows.UI.Notifications/Microsoft.Toolkit.Uwp.Notifications
;两者都没有区别。
原来是ExpirationTime = DateTime.Now.AddDays(model.Expiration)
出了问题。它正在被喂食 0
,结果 Toast 在发送的那一刻就过期了,从不显示。
我在后台任务中将 Toasts 设置为 运行。如果我为 toast 定义 XML "old" 方式,一切正常。这是相关代码:
var template = ToastTemplateType.ToastText02;
var xml = ToastNotificationManager.GetTemplateContent(template);
var elements = xml.GetElementsByTagName("text");
var text = xml.CreateTextNode(model.Title);
elements[0].AppendChild(text);
var toast = new ToastNotification(xml);
ToastNotificationManager.CreateToastNotifier("My App").Show(toast);
如果我尝试使用 AdaptiveText
版本,它不会 运行。事件查看器日志表明已成功发送 toast 消息(就像处理第一条消息一样),但没有出现 toast。这是代码(我 copy/pasted 直接来自 microsoft.com 上的教程):
var content = new ToastContent()
{
Launch = "app-defined-string",
Visual = new ToastVisual()
{
BindingGeneric = new ToastBindingGeneric()
{
Children =
{
new AdaptiveText()
{
Text = "Photo Share"
},
new AdaptiveText()
{
Text = "Andrew sent you a picture"
},
new AdaptiveText()
{
Text = "See it in full size!"
},
new AdaptiveImage()
{
Source = "https://unsplash.it/360/180?image=1043"
}
},
AppLogoOverride = new ToastGenericAppLogo()
{
Source = "https://unsplash.it/64?image=883",
HintCrop = ToastGenericAppLogoCrop.Circle
}
}
}
};
var toast = new Windows.UI.Notifications.ToastNotification(content.GetXml())
{
ExpirationTime = DateTime.Now.AddDays(model.Expiration)
};
toast.Failed += (o, args) =>
{
var message = args.ErrorCode;
};
Windows.UI.Notifications.ToastNotificationManager.CreateToastNotifier("My App").Show(toast);
我有 OS Build 15063——与我的应用程序目标相同。我有一个发生这种情况的模板 10 项目,所以我尝试创建一个新的非模板 10 项目,但问题仍然存在。我也尝试过使用 NuGet 的 NotificationExtensions.10
库,或者 Windows.UI.Notifications/Microsoft.Toolkit.Uwp.Notifications
;两者都没有区别。
原来是ExpirationTime = DateTime.Now.AddDays(model.Expiration)
出了问题。它正在被喂食 0
,结果 Toast 在发送的那一刻就过期了,从不显示。