下面将介绍两种方式如何在windows10 uwp开发中如何更新应用磁贴:

实际上windows的磁贴就是用xml实现的,你只需要创建相应格式的xml就可以实现动态磁贴了

一,手动更新磁贴

二,轮询更新磁贴

【第一种方式】手动更新磁贴

  1. 创建一个文本框和一个按钮,当按钮点击时,磁贴就会显示文本框的文本
  2. 给按钮绑定一个事件,代码如下
private void changeBtn_Click(object sender, RoutedEventArgs e)
{
//获取模板
var tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text01);
//获取标签名为text的元素值
var tileAttributes = tileXml.GetElementsByTagName("text");
//将获取的元素值追加一个值
tileAttributes[].AppendChild(tileXml.CreateTextNode(titleBox.Text));
//创建一个磁贴类,将xml数据填充到磁贴中
var tileNotification = new TileNotification(tileXml);
//向磁贴更新
TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
}

这样,当点击按钮时,应用磁贴就会显示文本框输入的值

【第二种方式】轮询更新磁贴

  1. 首先你得有台服务器,或者你也可以解析第三方的数据为磁贴xml格式,然后再进行轮询
  2. 下面介绍用MVC做服务器端,然后uwp再每半小时向服务器获取一次数据

如果你不了解MVC你可以跳过此步骤,然后看下面如何通过网络获取数据

  1. 创建一个MVC项目
  2. 添加一个Hello控制器

并在控制器的Index默认方法里添加以下数据:

public ActionResult Index()
{
ViewBag.Title = "巴黎发生恐袭";
ViewBag.Content = "数百人遇难";
ViewBag.Type = "新闻";
return View();
}

然后再Hello视图中添加Index视图,把布局页模板页什么的勾选去掉,然后新建了一个.cshtml文件,最后你要把Index.cshtml中的所有html数据全部清空替换成以下文档结构

<tile>
<visual version="2">
<binding template="TileSquare150x150Text01" fallback="TileSquareText01">
<text id="1">@ViewBag.Title</text>
<text id="2">@ViewBag.Content</text>
<text id="3">@ViewBag.Type</text>
<text id="4">@DateTime.Now.ToLongTimeString()</text>
</binding>
</visual>
</tile>

待会再介绍模板问题

最后一步,回到UWP项目中,创建一个按钮(当按下这个按钮时,以后磁贴会按照你设定时间进行自动轮询更新),添加一个单击事件事件,添加以下代码:

private void AutoUpdate_Click(object sender, RoutedEventArgs e)
{
//设置一个Uri类型变量保存服务器的xml地址
var tileContent = new Uri("http://localhost:61341/UWP/Index");
//设置轮询时间变量为半小时,也可以设置其他时间
var requestedInterval = PeriodicUpdateRecurrence.HalfHour;
//创建磁贴更新实例
var updater = TileUpdateManager.CreateTileUpdaterForApplication();
//开始轮询更新,传入服务器磁贴xml文件地址和轮询时间
updater.StartPeriodicUpdate(tileContent, requestedInterval);
}

这样一来你的应用就实现了自动磁贴更新的功能。

下面我们再来讨论一下磁贴模板问题:

  1. 不同磁贴尺寸有不同的格式,你要为每种磁贴同时设置不同模板
  2. 模板有固定格式和不同资源类型,你可以参考:https://msdn.microsoft.com/zh-cn/library/windows/apps/br212859.aspx
  3. 谢谢!

UWP Windows10开发更新磁贴和动态更新磁贴的更多相关文章

  1. UWP Windows10开发获取设备位置(经纬度)

    1.首先要在UWP项目的Package.appxmanifest文件中配置位置权限,如下图所示: 2.Package.appxmanifest后选择第三个选项卡,勾选位置权限(Location) 打开 ...

  2. 一步步教你为网站开发Android客户端---HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView

    本文面向Android初级开发者,有一定的Java和Android知识即可. 文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新List ...

  3. JSPatch – 动态更新iOS APP

    原文:http://blog.cnbang.net/works/2767/ JSPatch是最近业余做的项目,只需在项目中引入极小的引擎,就可以使用JavaScript调用任何Objective-C的 ...

  4. iOS 利用 Framework 进行动态更新

    http://nixwang.com/2015/11/09/ios-dynamic-update/ 前言 目前 iOS 上的动态更新方案主要有以下 4 种: HTML 5 lua(wax)hotpat ...

  5. IOS App动态更新

    框架 JSPatch WaxPatch react-native   方案对比 目前已经有一些方案可以实现动态打补丁,例如WaxPatch,可以用Lua调用OC方法,相对于WaxPatch,JSPat ...

  6. WPF柱状图(支持数据库动态更新)

    之前我们讲到wpf组件基类以及组件开发,现在我们围绕之前的内容去开发一个组件. 效果图请加群查看,在群共享里面. 做出这个呢  是比较繁琐的. 首先要使用我们的基类 继承基类的模板自动生成如下几个文件 ...

  7. Android UI:机智的远程动态更新策略

    问题描述 做过Android开发的人都遇到过这样的问题:随着需求的变化,某些入口界面通常会出现 UI的增加.减少.内容变化.以及跳转界面发生变化等问题.每次发生变化都要手动修改代码,而入口界面通常具有 ...

  8. 仿百度壁纸客户端(五)——实现搜索动画GestureDetector手势识别,动态更新搜索关键字

    仿百度壁纸客户端(五)--实现搜索动画GestureDetector手势识别,动态更新搜索关键字 百度壁纸系列 仿百度壁纸客户端(一)--主框架搭建,自定义Tab + ViewPager + Frag ...

  9. JSPatch动态更新APP

    JSPatch,只需在项目中引入极小的引擎,就可以使用JavaScript调用任何Objective-C的原生接口,获得脚本语言的能力:动态更新APP,替换项目原生代码修复bug. 用途 是否有过这样 ...

随机推荐

  1. string 是值类型,还是引用类型(.net)[转]

    转自http://hi.baidu.com/newfzks/item/b805f0f4edb0810dd89e7290 string 是值类型,还是引用类型(.net) 一. string 类型的用法 ...

  2. C语言 字符串操作 笔记

    /* C语言字符串的操作笔记 使用代码和注释结合方式记录 */ # include <stdio.h> # include <string.h> int main(void) ...

  3. linux document and directory find

    http://suchalin.blog.163.com/blog/static/55304677201062924959497/ Linux 查看文件夹大小及文件数量命令 2010-07-29 14 ...

  4. HDU 5274 Dylans loves tree 树链剖分+线段树

    Dylans loves tree Problem Description Dylans is given a tree with N nodes. All nodes have a value A[ ...

  5. XMU 1611 刘备闯三国之卖草鞋 【贪心】

    1611: 刘备闯三国之卖草鞋 Time Limit: 1000 MS  Memory Limit: 64 MBSubmit: 90  Solved: 48[Submit][Status][Web B ...

  6. mysql 系统函数

    SELECT VERSION() -- 获取 mysql版本号 SELECT CONNECTION_ID() -- 查看服务启动后 用户的连接次数 SELECT DATABASE(),SCHEMA() ...

  7. YTU 2438: 三人三鬼

    2438: 三人三鬼 时间限制: 1 Sec  内存限制: 128 MB 提交: 35  解决: 9 题目描述 目标是将东岸的3人3鬼通过一只小船转移到西岸,希望以尽可能少的摆渡次数. 船的容量有限, ...

  8. qemu-kvm磁盘读写的缓冲(cache)的五种模式

    qemu-kvm磁盘读写的缓冲(cache)模式一共有五种,分别是writethrough, wirteback, none, unsafe, directsync当你对VM读写磁盘的性能有不同的要求 ...

  9. Python基础第九天

    一.内容

  10. hdu 1284

    钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...