Welcome

首页 / 软件开发 / .NET编程技术 / Windows 8 动手实验教程 实验7:磁贴和通知

Windows 8 动手实验教程 实验7:磁贴和通知2014-09-04动手实验

实验7:磁贴和通知

2012年9月

简介

磁贴是Windows应用商店应用用户体验的重要元素。当应用程序被安装后,它的磁贴将在Windows 8开始屏幕被创建。该磁贴(称为主磁贴)作为启动应用程序的快捷方式。默认情况下,主磁贴的图像来自Logo.png文件,它由Visual Studio包含在Window应用商店项目中。图像大小为150X150像素,并由它创建了一个正方形磁贴。然而,通过向项目添加一个310X150的图像并在应用程序清单中将它指定为“宽徽标”,您可以同时在应用程序中包含一个宽磁贴。如果应用程序支持宽磁贴,那么用户可以在开始屏幕上在正方形磁贴和宽磁贴之间进行切换。

Windows应用商店应用同时包含创建附加磁贴(称为辅助磁贴)的选项。辅助磁贴作为启动应用程序的快捷方式,同时为应用程序提供预定义的位置和状态。例如天气应用程序会允许用户为华盛顿州雷德蒙德和佐治亚州亚特兰大等地理位置创建辅助磁贴。用户然后可以通过简单地点击辅助磁贴启动应用程序并查看雷德蒙德或亚特兰大的天气。

您可以通过使用Windows运行时中的Windows.UI.StartScreen.SecondaryTile类创建辅助磁贴。磁贴创建通常由用户发起,例如在应用栏点击某个命令。具备创建辅助磁贴功能的应用程序提供了许多参数,包括磁贴背景图像的统一资源标识符 (URI)和一个包含激活参数的字符串。当应用程序从辅助磁贴启动时,操作系统将激活参数传递给应用程序。这些参数提供了应用程序的初始化信息。对于天气应用程序,激活参数也许仅仅是一个邮政编码。

磁贴被创建后,它不必保持静止状态。Windows应用商店应用享有许多通过更新和推送通知使磁贴内容动态和引人注目的方法。例如应用程序可以使用Windows.UI.Notifications.TileUpdater类更新磁贴的内容。这些更新可以可选地被排队。当启用队列后,操作系统每隔几秒钟轮换显示最近的五个更新,这使磁贴显得新鲜和生动。

当然应用程序需要在运行时刻才能使用TileUpdater类更新磁贴。但是磁贴甚至可以在应用程序未运行时被更新(通过Windows通知服务,WNS)。设想天气应用程序即使在未运行时也需要显示恶劣天气警报。通过Windows通知服务,天气应用程序的服务器可以发送推送通知来更新开始屏幕的磁贴。

推送通知并不局限于更新磁贴。它们也可以弹出包含用户消息的toast注窗口(例如“在您的区域检测到恶劣天气”),并且在磁贴上显示锁屏提醒(数字或预定义的字形)。例如,设想一个提醒用户在收件箱中有新消息的邮件应用程序。

在本实验中您将通过向Contoso Cookbook添加辅助磁贴、推送通知和toast以获得关于它们的第一手体验。在结束时,用户将能够通过辅助磁贴在开始屏幕固定喜爱的食谱,通过Windows通知服务查看磁贴的更新和toast的运行。

译者注:Toast指土司、面包块,这里指在类似面包块形状的长方形区域中显示的消息。

目标

本实验将向您展示如何:

创建辅助磁贴。

使用推送通知更新主磁贴。

使用计划toast通知用户,即使应用程序未运行。

系统要求

您需要下列软件完成本实验:

Microsoft Windows 8

Microsoft Visual Studio 2012

设置

您必须执行以下步骤来准备本实验的计算机:

1、安装 Microsoft Windows 8。

2、安装 Microsoft Visual Studio 2012。

练习

本动手实验包含以下练习:

1、合并(Incorporate)辅助磁贴

2、合并推送通知

3、合并计划toast

完成本实验的预计时间:30至40分钟。

练习 1: 合并辅助磁贴

在本练习中您将向项-明细页面的应用栏添加命令以允许用户在开始屏幕使用辅助磁贴固定喜爱的食谱。您还将向Contoso Cookbook添加逻辑,使得当应用程序从辅助磁贴激活时能够显示相应的食谱。

任务1 – 修改应用栏

需要完成的第一项工作是向应用栏添加固定命令。然后我们为其编写处理程序以创建辅助磁贴,点击该磁贴可以显示当前显示的食谱。

1、在Visual Studio中打开您在实验6中完成的ContosoCookbook项目。如果您尚未完成实验6或希望从一个参考副本开始,您可以在开始材料中找到实验已完成的版本。

2、打开ItemDetailPage.xaml并在应用栏“LeftCommands”部分的结束处添加以下语句。

XAML

<Button x:Name="PinRecipeButton" HorizontalAlignment="Left" Style="{StaticResource PinAppBarButtonStyle}" Click="OnPinRecipeButtonClicked"/>

3、打开StandardStyles.xaml并定位到被注释的样式元素中的关键字PinAppBarButtonStyle。取消注释以使代码如下所示。

XAML

<!-- <Style x:Key="RenameAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}"><Setter Property="AutomationProperties.AutomationId" Value="RenameAppBarButton" /><Setter Property="AutomationProperties.Name" Value="Rename" /><Setter Property="Content" Value="&#xE13E;" /></Style> --><Style x:Key="PinAppBarButtonStyle" TargetType="ButtonBase"BasedOn="{StaticResource AppBarButtonStyle}"><Setter Property="AutomationProperties.AutomationId" Value="PinAppBarButton" /><Setter Property="AutomationProperties.Name" Value="Pin" /><Setter Property="Content" Value="&#xE141;" /></Style><!--<Style x:Key="MusicInfoAppBarButtonStyle" TargetType="ButtonBase" BasedOn="{StaticResource AppBarButtonStyle}">