Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目

原文:Windows 8.1 应用再出发 (WinJS)
- 创建一个简单项目

前面几篇我们介绍了如何利用 C# + XAML 完成Windows Store App 功能的实现,接下来的几篇我们来看看如何利用 Html +
WinJS 来完成这些功能。

本篇我们使用WinJS 来创建一个简单的项目,来看看项目的构成是怎样的,与C#,XAML 的项目有哪些异同。

首先我们在Visual Studio 2013中选择模板 -> JavaScript -> Windows
应用商店来创建一个空白应用程序,来看看项目的构成(为方便对照,我在右边放了使用XAML的商店应用截图)

    

  • WinJS项目里没有Properties目录去描述程序集的信息

  • 引用目录包含了应用中需要的程序包,如图中的Windows Library中包含了我们需要的js 和 css

  • css目录存放页面使用的css文件,如图中的default.css文件会在default.html中使用

  • 同样的,js目录中存放的是js文件,default.js会在default.html中使用

  • images目录类似于XAML项目中的Assets目录,存放磁贴和启动页图片等资源

  • default.html 是程序的起始页,类似XAML项目的入口点

  • package.appxmanifest 是清单文件,负责设置应用名称、起始页、磁贴、功能、声明等等。

package.appxmanifest文件绝大部分与XAML项目相同,可以参照 Windows
8.1 应用再出发 - 创建我的第一个应用
 。

有一个地方需要注意,那就是应用程序选项卡中 入口点
变成了 起始页 ,熟悉BS开发的同学们肯定不会对起始页陌生。

下面来看看起始页 default.html:


<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta charset="utf-8" />
<title>WinJSAppDemo</title>

<!-- WinJS 引用 -->
<link href="//Microsoft.WinJS.2.0/css/ui-dark.css" rel="stylesheet" />
<script src="//Microsoft.WinJS.2.0/js/base.js"></script>
<script src="//Microsoft.WinJS.2.0/js/ui.js"></script>

<!-- WinJSAppDemo 引用 -->
<link href="/css/default.css" rel="stylesheet" />
<script src="/js/default.js"></script>
</head>
<body>
<p>此处显示内容</p>
</body>
</html>

这是一个很简单的html构成,我们看到文件中添加了对WinJS 和 针对起始页的 default.js 和 default.css 的引用。

来看看default.js:


(function () {
"use strict";

var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;

app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
// TODO: 此应用程序刚刚启动。在此处初始化
//您的应用程序。
} else {
// TODO: 此应用程序已从挂起状态重新激活。
// 在此处恢复应用程序状态。
}
args.setPromise(WinJS.UI.processAll());
}
};

app.oncheckpoint = function (args) {
// TODO: 即将挂起此应用程序。在此处保存
//需要在挂起中保留的任何状态。您可以使用
// WinJS.Application.sessionState 对象,该对象将在
//挂起中自动保存和恢复。如果您需要在
//挂起应用程序之前完成异步操作,请调用
// args.setPromise()。
};

app.start();
})();

我们看到,该文件中有两个很重要的方法,app.onactivated 和
app.oncheckpoint,分别进行应用激活和挂起时的处理。类似XAML中的 OnLaunched 和 OnSuspending。

大家注意 args.setPromise(WinJS.UI.processAll()); 的意思是在onactivated完成之前,完成
WinJS.UI.processAll() 的操作。而这个操作的意思是把声明的控件绑定到所有元素上,并且在指定的根元素启动。

如果我们想在default.html页加载时跳转到我们指定的页面,比如main.html,需要做哪些动作呢?

首先我们新建 main.html 相关文件,main.html、main.js 和
main.css,路径为pages/main,接下来完成跳转我们有两种方式:

(1). 在default.html 里指定跳转页面

先对default.js做如下修改

var nav = WinJS.Navigation;
var ui = WinJS.UI;

上面定义了两个变量,在下面的onactivated方法中加入以下代码来替换
args.setPromise(WinJS.UI.processAll());

var p = ui.processAll().then(function () {
return nav.navigate(nav.location || Application.navigator.home, nav.state);
});
args.setPromise(p);

然后在default.html 页面的body中加入

<div id="contenthost" data-win-control="Application.PageControlNavigator" data-win-options="{home: ‘/pages/main/main.html‘}" />

这样就可以在启动时,指定显示main.html 了。
(2). 在default.js 里指定跳转

对default.js做如下修改

var nav = WinJS.Navigation;

定义nav变量,下面onactivated方法中加入如下代码替换
 args.setPromise(WinJS.UI.processAll());

var p = WinJS.UI.processAll().
then (function () {
return nav.navigate("/pages/main/main.html")});
args.setPromise(p);

然后加入下面方法


    nav.onnavigated = function (evt) {
var contentHost =
document.body.querySelector("#contenthost"),
url = evt.detail.location;
WinJS.Utilities.empty(contentHost);
WinJS.UI.Pages.render(url, contentHost);
}

最后在default.html 文件中加入

<div id="contenthost"/>

这样也完成了启动时的页面跳转到main.html 的要求。

好了,到这里我们就利用WinJS 和 Html 完成了简单项目的创建,接下来我们利用WinJS演示XAML中介绍过的其他功能,谢谢。

Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目,布布扣,bubuko.com

时间: 2024-08-02 11:04:57

Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目的相关文章

Windows 8.1 应用再出发 (WinJS) - 几种新增控件(1)

原文:Windows 8.1 应用再出发 (WinJS) - 几种新增控件(1) Windows 8.1 和 WinJS 引入了以下新控件和功能,分别是:AppBarCommand.BackButton.Hub.ItemContainer.NavBar.Repeater.WebView. 本篇我们先来介绍 AppBarCommand.BackButton.Hub.ItemContainer,其余三种放在下一篇中介绍. 1. AppBarCommand Windows 8.1 加入了AppBarC

Windows 8.1 应用再出发 (WinJS) - 几种新增控件(2)

原文:Windows 8.1 应用再出发 (WinJS) - 几种新增控件(2) 上篇我们介绍了Windows 8.1 和 WinJS 中新增控件中的 AppBarCommand.BackButton.Hub.ItemContainer,本篇我们接着来介绍 NavBar.Repeater 和 WebView. 1. NavBar NavBar 是专门用于导航命令的应用栏控件,它是AppBar 的子类.可以完成简单的链接,也可以完成多层链接. 类似XAML 中的 TopAppBar,NavBar

Vue安装并创建一个简单项目

1.nodejs安装 下载地址:https://nodejs.org/en/download/ 安装完之后cmd 下输入:node -v 查看是否安装成功. 2.查看npm版本 cmd下输入命令:npm -v 如果低于3.0版本需要进行升级 升级方法: 在cmd命令下cd到nodejs安装目录,然后输入以下命令:npm update npm 这里要等待一下.更新完成后再使用:npm -v检查一下版本 3.cnpm安装 cnpm是淘宝的一个镜像,安装之后可以使用cnpm安装命令工具,安装速度会加快

创建一个简单项目的开发步骤

Windows 8.1 应用再出发 - 创建我的第一个应用

原文:Windows 8.1 应用再出发 - 创建我的第一个应用 转眼间Windows 8.1已经发布了四个多月,之前因为开发需要对Windows 8.1新特性进行过零散的学习和使用,一直没有静下心来系统的学习过.近日部门有几名新同事加入,需要进行Windows 商店应用开发的培训,所以借这个机会,重新梳理一下Windows 8.1 应用开发的知识.闲言碎语不多讲,接下来开始第一站,创建第一个应用. 首先我们看一下开发环境要求:Windows 8.1 + Visual Studio 2013 紧

Windows 8.1 应用再出发 - 几种新增控件(1)

原文:Windows 8.1 应用再出发 - 几种新增控件(1) Windows 8.1 新增的一些控件,分别是:AppBar.CommandBar.DatePicker.TimePicker.Flyout.MenuFlyout.SettingsFlyout.Hub 和 Hyperlink.我们分成两篇来介绍,本篇先为大家介绍AppBar.CommandBar.DatePicker 和 TimePicker. 1. AppBar Windows 8.1引入了几种新的控件来帮助我们更快捷的创建应用

Windows 8.1 应用再出发 - 几种新增控件(2)

原文:Windows 8.1 应用再出发 - 几种新增控件(2) 本篇我们接着来介绍Windows 8.1 的新增控件,分别是:Flyout.MenuFlyout.SettingsFlyout.Hub 和 Hyperlink. 1. Flyout Flyout被称为浮出控件,能起到提示或者简单交互作用.我们可以利用它来要求用户确认操作.收集用户输入信息或显示提示信息等.只有当用户点击时才显示Flyout,当点击外部任意点时,Flyout消失. Flyout通常会附加到Button上,所以Butt

Windows 8.1 应用再出发 - 几种常用控件

原文:Windows 8.1 应用再出发 - 几种常用控件 本篇为大家简单介绍Windows 商店应用中控件的用法,为方便讲解,我们在文本控件和按钮控件这两类中分别挑选有代表性的控件进行详细说明. 1. 文本控件 (1) TextBlock TextBlock是最常用的文本显示控件,重点关注以下属性: CharacterSpacing  字符之前的统一间距,间距 = 字体大小 / 1000.默认为0,正值增进跟踪和放宽字符间距.负值减少跟踪和收紧字符调间距. IsColorFontEnabled

Windows 8.1 应用再出发 - 视图状态的更新

原文:Windows 8.1 应用再出发 - 视图状态的更新 本篇我们来了解一下Windows 8.1 给应用的视图状态带来了哪些变化,以及我们怎么利用这些变化作出更好的界面视图. 首先我们来简单回顾一下Windows 8.0 时代的视图状态:     上图中,从左到右依次是Windows 8 应用的三种视图状态:Full Screen, Snapped 和 Filled. 其中Snapped 和 Filled 状态只能显示在横向分辨率在1366像素或更高的屏幕中.而Snapped视图固定宽度为