本节书摘来自异步社区《windows 8 权威指南》一书中的第2章,第2.1节,作者:胡耀文 , 尹成 , 李贝贝 , 卢磊 , 曹珍著,更多章节内容可以访问云栖社区“异步社区”公众号查看
windows 8 权威指南
我们使用metro应用,目的就是为了拥有快速流畅的动态metro体验。微软为用户提供了针对不同的应用程序设置不一样的启动模式。在接下来的部分将介绍微软的四种启动模式,用户可以基于对应用程序的不同需求将程序设置成不一样的启动模式,以达到更加流畅快速的体验。
模式一 默认的启动模式:适用于不需要额外加载和可立即使用的应用程序。
对于许多应用程序而言,“默认启动”是最优流程。在这一流程中,系统将处理各个应用程序初始屏幕的显示与消除。在系统完成激活,并显示出窗口之前,用户初始屏幕将一直显示,并向应用程序的登录页面触发具有动画效果的交叉淡入淡出。如果用户的登录页面是静态的,而且不需要进行额外的加载操作,那么请使用“默认启动”。如果内容可立即使用,那么就没有必要人为地延迟用户使用应用程序。
以下示例显示了从release preview中使用internet explorer 10(以下简称ie10)进行默认启动的情形。当启动应用程序时,用户将立即见到初始屏幕,如图2.1所示。初始屏幕将在应用程序激活之前一直显示,此后,初始屏幕将淡出,并转而显示登录页面。在这一情形中,登录页面将显示用户所访问的最后页面,由于该页面在上一次会话过程中已经保留,因此其随时可用。图2.1所示为启动过程。
显示完成后会自动跳转到程序的登录界面,如图2.2所示。
如果您不需要进行额外的操作即可实施默认的启动横式。首先在应用程序的清单中选择620×300初始屏幕图像,然后再使用静态内容设计登录页面。激活完成后,初始屏幕将淡出,转而显示用户的登录页面,随后您就可以使用该应用程序了。
模式二 框架的应用程序启动:适用于需在启动时增量填充登录页面的应用程序。
对于大多数应用程序而言,默认启动将十分有效。在初始屏幕消除后,应用程序将开始运行,并准备与用户进行交互。然而有些应用程序在此时并未完全启动,这些应用程序需要启动后再动态地加载内容。对于这类应用程序,“框架应用程序启动”模式将是一个不错的方式,其将尽可能迅速地让用户使用应用程序,并在此时向用户提供内容丰富的加载信息。在这一模式中,初始屏幕将消除,并转变成一个“框架”登录页(用户看到的登录页将不包含任何内容),而应用程序将在此时检索内容。通过页面添加的进度栏,用户可知该应用程序仍在加载中。
以下示例显示了从release preview中使用音乐应用程序进行框架启动的情形。此处将显示框架登录页面,而此时应用程序正在检索最新音乐内容。以下所示为其流程。
第一步同样是单击应用磁贴,首先显示初始屏幕,如图2.3所示。
稍后会显示框架的登录界面,这时可以看到视图顶部的进度栏。在登录后的界面中即可显示出应用程序登录完成的界面,其中显示了用户添加到该应用中的设置信息以及其他信息,如图 2.4所示。
模式三 扩展的应用程序启动:适用于需在呈现ui前执行长时间加载操作的应用程序,这可能包含网络调用或大量文件i/o。
对于在启动后需要执行额外加载操作的应用程序而言,“框架应用程序启动”将是一个不错的选择。但是,这一选择也有一个弊端:由于系统立即将用户带入“框架”页面,因此集体加载流程可能会让用户产生不连贯的感觉。从初始屏幕到框架登录页面的切换可能会给用户留下存在两个独立的加载操作的印象。如果用户不希望使用这一模式,那么“扩展的应用程序启动”模式将是一个不错的选择。
该流程使用“扩展的”初始屏幕的概念为用户打造了一个无缝的加载体验。当常规初始屏幕消除后,应用程序将显示一个扩展的初始屏幕而不是登录页面。扩展的初始屏幕将完全由应用程序所拥有,而且使用初始屏幕api进行了格式化。api将提供定位信息,确保扩展的初始屏幕的外观从视觉效果上与初始屏幕完全一致(进度环和加载详情除外),这能集合看似独立的加载操作。扩展的初始屏幕处于运行状态时,应用程序可继续执行登录页面所需的操作。待加载完成后,即可从扩展的初始屏幕切换至登录页面。
如果初始化的时间较长(如网络连接性的不可预测),那么扩展的启动流程将十分有效。如果您需要在启动过程中进行任何“难度较大的操作”,那么扩展的初始屏幕将是理想的选择。此外,如果您希望确保在切换至登录页面之前,登录页面已完成更新(如果您选择不显示缓存的数据),那么这也将是一个不错的选择。
以下示例显示了从windows 8 release preview中使用天气应用程序进行扩展的启动流程的情形。天气应用程序是可实施扩展的启动模式的众多应用程序中的经典示例,这是因为应用程序可在其从网络中请求最新天气数据时向用户显示扩展的初始屏幕(向用户显示缓存的天气数据意义不大)。以下所列的是其流程:
同样第一步是单击应用磁贴,初始化界面如图2.5所示。
初始界面之后会进入显示扩展的初始屏幕(包含进度环)。这时程序主要的作用是用于刷新初始化数据,如图2.6所示。
图2.6 初始化缓冲界面
用户可以看到在app preview字样下面有刷新的图标在转动。完成之后即进入了显示应用程序登陆页面,如图2.7所示。
模式四 延迟的应用程序启动:适用于需在启动时完成基本异步任务(如查询应用程序设置以进行首次运行检查)的应用程序。
最后一种启动模式是“延迟的应用程序启动”。延迟启动与扩展启动模式类似,可在初始屏幕切换之前启用对登录页面的准备操作。不同之处是,延迟的应用程序不是显示“扩展的”初始屏幕,而是延迟常规初始屏幕的消除,直到完成异步任务。由于应用程序完成该延迟的时间有限,因此用户应谨慎使用延迟模式,而且应在系统显示应用程序之前完成诸如读取应用程序设置等简单异步操作。此外,如果用户无法及时恰当地处理错误或异常,那么启动有可能被终止。相应地,如果用户的应用程序需要进行网络调用或处理大量数据,则应使用框架的或扩展的应用程序启动模式。
以下示例显示了从windows 8 release preview中使用照片应用程序进行延迟启动的情形。当用户从桌面打开.jpg文件时,照片应用程序将作为此类文件的默认处理程序而被启动。照片应用程序将使用延迟来在初始屏幕消除前加载图像缩略图。由于缩略图检索操作可相对迅速地完成,因此延迟的使用可被接受。随后,在用户进入应用程序后,系统可异步获取较高分辨率图像来更换缩略图。这一流程可确保缩略图在用户切换至应用程序之前显示于屏幕中。以下所示为其流程。
第一步是采用双击.jpg图片的方式打开默认的照片metro应用。此时同样打开了如图2.8所示的初始化界面。
此时并没有完全将图片激活,而是采用延迟激活,同时检索缩略图。此时的界面不会有变化,待检索结束之后则在照片程序中显示图片,如图2.9所示。
前面简单地介绍了四种模式下的metro风格应用程序。当然,用户并不需要了解更多的细节问题,只是在使用的时候,知道metro中不同的模式对应不同的启动方式就可以了。