【发布时间】:2015-05-30 21:56:01
【问题描述】:
我正在尝试在 C# 中为链接到 winjs 应用程序的推送通知创建一个后台任务(在有人问之前:在 js 中不这样做的原因是因为 windows phone 运行时中的错误,请参阅here) .
这是我的初稿:
public sealed class myPushNotificationBgTask : IBackgroundTask {
public void Run(IBackgroundTaskInstance taskInstance)
{
RawNotification notification = (RawNotification)taskInstance.TriggerDetails;
string content = notification.Content;
Debug.WriteLine("received push notification from c# bg task!");
var settings = ApplicationData.Current.LocalSettings;
settings.Values["push"] = content;
raiseToastNotification(content);
}
private void raiseToastNotification(string text)
{
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01);
XmlNodeList elements = toastXml.GetElementsByTagName("text");
foreach (IXmlNode node in elements){
node.InnerText = text;
}
ToastNotification notification = new ToastNotification(toastXml);
ToastNotificationManager.CreateToastNotifier().Show(notification);
}
}
但还有一些问题:
-
如何将它集成到我的 winjs 应用程序中?添加作为参考并将其添加到我的 appxmanifest?还是我需要手动注册任务并像访问它一样
var task = new LibraryName.myPushNotificationBgTask();
当在 appxmanifest 中定义时,我能否使用此 backgroundtask 访问相同的本地设置?点击引发的通知会导致打开(正确的)应用吗?
提前致谢!
【问题讨论】:
标签: javascript c# push-notification windows-8.1 winjs