Windows Phone 8.1锁屏通知 关键词-----badge

badge-----百度翻译给的解释如下

徽章,像章,奖章; 象征,标记; [美国俚语]警察;

以…为标志; 使佩带像章(或徽章、标记); 给予…标记(或徽号); 授予…奖章(或徽章);

总的来说呢,锁屏通知就是应用自身的一个信息标记,可以是数字也可以是字形标记。用来干嘛的呢,就是给我们用

户一个醒目的感觉,提醒我们某个应用的内容更新了

在手机上常见的显示形式是应用磁贴右上角的数字或者字形提示,还有就是锁屏时候的锁屏界面的徽章和图块文本通

知,以图为证:

数字都可以理解,字形呢就指右上角对应的(alert)和(attention)


要实现以上功能呢,当然代码肯定是少不了写的了,但是代码之前一是要熟悉一些配置的问题,并且认识核心类

首先,当我代码都吭哧吭哧的写好之后,发现为什么锁屏中没有出现应用的效果呢,这是因为你没配置清单文件和手

机自带的设置,具体如下:

1.程序的清单文件Package.appxmanifest->应用程序->锁定屏幕通知->徽章和图块文本,有图有真相:



2.程序的清单文件Package.appxmanifest->可见资产->徽章徽标->然后自己选择提前准备好的图片即可(注意上面的

尺寸要求),有图有真相:

你不必把3个图片都整上去,可以只整一个即可,因为最终总是显示的那么小,当然也可以自己分别尝试一下这3个,

看看差异如何。



3.在调试的时候,不管在实体机上还是调试模拟机上,都要在设置里面不要把锁屏时间设置为无,要不然模拟机上锁

不了屏,那就看不了锁屏效果喽,我一般设置30秒,让它尽快锁屏,这样就能看到效果了。当然实体机上装了锁屏软

件的直接一键锁屏也可以。

设置->锁屏界面->屏幕超时->设置成30秒

同时呢,在锁屏界面设置中有一项通知,通知里面有一项选择应用以显示即时状态,点“+”号将自己写的那个应用

加进去。有图有真相:

注意第三个“+”号,经过选择选择应用之后就被应用图标填充了。(我这边示例应用叫Reminder)



配置完了,其次就要认识核心类了,主要用到了BadgeUpdateManager和BadgeNotification这两个类。

其实,涉及到通知,这边一般都是采用的XML的模板。整个通知结构就可以看做是一个XML结构树。

MSDN的BadgeUpdateManager解释:BadgeUpdateManager class

MSDN的BadgeNotification解释:BadgeNotification class

另外的XmlDocument和XmlElement也需要了解一下

XmlDocument:XmlDocument 类

XmlElement:XmlElement 类


好了,伪代码贴出来:

public sealed partial class MainPage : Page
    {
        int i = 1;
        public MainPage()
        {
            this.InitializeComponent();

            this.NavigationCacheMode = NavigationCacheMode.Required;

            //数字XML模板
            XmlDocument badgeXml = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeNumber);
            //字形XML模板
            XmlDocument badgeXml2 = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeGlyph);

            //设置数字的值为17,如果数字大于99,则表示为99+
            XmlElement badgeElement = (XmlElement)badgeXml.SelectSingleNode("/badge");
            badgeElement.SetAttribute("value", "17");
            //设置字形的值(自行分为alert和attention,相关显示图形徽章如开头介绍的那样)
            XmlElement badgeElement2 = (XmlElement)badgeXml2.SelectSingleNode("/badge");
            badgeElement2.SetAttribute("value", "alert");
            //badgeElement2.SetAttribute("value", "attention");

            //创建锁屏提醒通知
            BadgeNotification badge = new BadgeNotification(badgeXml);
            //将锁屏提醒通知发送到锁屏
            BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badge);


            //DispatcherTimer timer = new DispatcherTimer();
            //timer.Interval = new TimeSpan(0,0,3);
            //timer.Tick += timer_Tick;
            //timer.Start();
        }

        //void timer_Tick(object sender, object e)
        //{
        //    XmlDocument badgeXml = BadgeUpdateManager.GetTemplateContent(BadgeTemplateType.BadgeNumber);
        //    XmlElement badgeElement = (XmlElement)badgeXml.SelectSingleNode("/badge");
        //    badgeElement.SetAttribute("value", i.ToString());
        //    BadgeNotification badge = new BadgeNotification(badgeXml);
        //    BadgeUpdateManager.CreateBadgeUpdaterForApplication().Update(badge);
        //    i++;
        //}

运行一下即可,就能出现一开始我所描述的效果了。

这只是静态指定的,但是一般这种需求都是要涉及到后台任务的,应用一旦有内容更新,通过后台进行提醒通知的。

关于后台任务,我的博客中也有:Windows Phone 8.1后台任务


其实上面的代码呢,我也用计时器试试,验证是否在应用打开的情况下(注意应用不要挂起,更不是关闭),屏幕自动

锁屏后,在锁屏界面上的数字是否会按照计时器的变化而每隔3秒钟增加的,事实上,我试了下,增加是会增加的,

但是效果不是很好,有时候数字停在那边,过一会一下增加的很快。但是结果还是会增加的。


还有就是应用挂起和应用关闭后还会显示吗,答案是会显示的,不过那就真正是静态的了。除非你卸载掉应用,要不

然是一直会有锁屏通知的。你可以这样理解,就是应用打开的时候就给了手机一个锁屏通知,然后就撒手不管了,让

锁屏显示去吧。不管之后应用程序挂起了还是被杀死了,锁屏还是接管着这个通知。但是之后你再一次打开应用的时

候,应用会再次发一次锁屏通知,前面的通知就没有意义了,也可以说是过时了。之后应用依旧不管它了。


大家可以多试试,按照自己的想法或者奇妙的点子多去尝试下。

実に おもしろい

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值