最近在学习win8 metro app的开发,今天刚刚学了一个小的例子,分享一下

  开始之前你需要准备。。。

  1、开发win8应用需要具备Windows 8 和 Microsoft Visual Studio Express 2012 for Windows 8

  下载 Windows 8

  2、安装window8之后,转至 开发者的下载内容 ,查找下载工具和 SDK 标题,然后单击“立即下载”按钮

  3、你需要开发者许可证才能开始创建 Windows 应用商店应用。 获取开发者许可证。

  在 Visual Studio 中创建新项目,我们来创建名为 HelloWorld 的新应用。以下是操作方法:

  启动 Visual Studio Express 2012 for Windows 8。

  在“文件”菜单上,选择“新建项目”。会出现“新建项目”对话框。可以在对话框的左侧窗格中选择要显示模板的类型。

  在左侧窗格中,依次展开“已安装”、“模板”和 JavaScript,然后选择“Windows 应用商店”模板类型。对话框的中心窗格会显示一列适用于 JavaScript 的项目模板。

  

  在中心窗格中,选择 Blank App 模板。

  在 Name 文本框中,输入 "HelloWorld"。

  单击“确定”可创建项目。Visual Studio 创建项目并在“解决方案资源管理器”中显示该项目。

  

  尽管 Blank App 为最基本的模板,但该模板仍包含少量文件:

  清单文件 (package.appxmanifest)介绍了应用(它的名称、介绍、磁贴、开始页面、初始屏幕等等)并列出了应用包含的文件。

  要在开始屏幕中显示的一组大的和小的徽标图像(logo.png 和 smalllogo.png)。

  表示应用位于 Windows 应用商店的图像 (storelogo.png)。

  显示应用启动时间的初始屏幕 (splashscreen.png)。

  Windows JavaScript 库的 CSS 和代码文件(位于 References 文件夹中)。

  开始页面 (default.html) 和附带的 JavaScript 文件 (default.js),这些文件在应用启动时运行。

  这些文件是使用 JavaScript 的所有 Windows 应用商店应用必不可少的文件。在 Visual Studio 中创建的所有项目都包含这些文件。

  现在我们就创建了一个简单的应用,如果你想看它的外观,按 F5 可构建、部署并启动应用。首先会出现默认的初始屏幕。

  

  这就是初始屏幕

  若要关闭应用,请从屏幕的顶部边缘向底部边缘滑动或按 Alt-F4。(有的笔记本要按alt+fn+f4)关闭应用

  接下来我们修改default.htm页面,这是默认生成的

 1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8" />
5 <title>HelloWorld</title>
6
7 <!-- WinJS references -->
8 <link href="//Microsoft.WinJS.1.0/css/ui-dark.css" rel="stylesheet" />
9 <script src="//Microsoft.WinJS.1.0/js/base.js"></script>
10 <script src="//Microsoft.WinJS.1.0/js/ui.js"></script>
11
12 <!-- HelloWorld references -->
13 <link href="/css/default.css" rel="stylesheet" />
14 <script src="/js/default.js"></script>
15 </head>
16 <body>
17 <p>Content goes here</p>
18 </body>
19 </html>

  接下来向 default.html 文件中添加一些新的内容。正如你向任何其他 HTML 文件中添加内容一样

  1、使用以下内容替代 body 元素中的现有内容:显示 "Hello, world!" 的首级标题、询问用户名的一些文本、用于接受用户名的 input 元素、button 以及 div 元素。 向 input、button 和 div 分配 ID。

1 <body>
2 <div style="width:100%; height:100%; ">
3 <h1>Hello World!</h1>
4 <p>What's your name?</p>
5 <input id="inputName" type="text" /><button id="btnHello">Say hello</button>
6 <div id="OutputMsg">
7 </div>
8 </div>
9 </body>

  我们启动应用程序看看效果吧

  

  现在点击按钮是没有任何反应的,因为我们没有给它注册事件,接下来要做的就是给按钮添加事件,我们向 default.js 文件添加事件处理程序代码。

  我们打开default.js文件看看是些什么东东

  在我们开始添加自己的代码之前,我们来看一下该文件中代码的头几行和最后几行:

1 (function () {
2 "use strict";
3
4 // Omitted code
5
6 })();

  这是自我执行匿名函数

  代码的下一行为 JavaScript 代码打开了严格模式。严格模式为代码提供了额外的错误检查。例如,它防止你使用隐式声明的变量或为只读属性分配值。

  查看 default.js 中代码的剩余部分。它处理了应用的 activated 和 checkpoint 事件。我们以后会深入了解这些事件的详细信息。现在,只要了解启动应用时会触发 activated 事件。

  我们来为 button 定义事件处理程序

  function buttonClickHandler(){

  }

  在事件处理程序内,从“inputName控件内检索用户名,并使用该用户名创建问候语”,首先判断用户名是否输入,没有弹出提示框,有则输出问候语

 1 function buttonClickHandler()
2 {
3 var username = document.getElementById("inputName").value;
4 if (username == "") {
5 new Windows.UI.Popups.MessageDialog("Please input your name !", "Tip").showAsync();
6 return false;
7 }
8 else {
9 var greeting = "Hello, " + username + "! Nice to meet you";
10 document.getElementById("OutputMsg").innerText = greeting;
11 }
12 }

  现在,你只需向该按钮注册该事件处理程序。注册事件处理程序的较好时机是在激活应用之时。幸运的是,Visual Studio 为我们在 default.js 文件中生成了一些代码,可处理应用的激活:app.onactivated 事件处理程序

 1 app.onactivated = function (args) {
2 if (args.detail.kind === activation.ActivationKind.launch) {
3 if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
4 // TODO: 此应用程序刚刚启动。在此处初始化
5 //您的应用程序。
6 } else {
7 // TODO: 此应用程序已从挂起状态重新激活。
8 // 在此处恢复应用程序状态。
9 }
10 args.setPromise(WinJS.UI.processAll());
11
12 var helloButton = document.getElementById("btnHello");
13
14 helloButton.addEventListener("click", buttonClickHandler, false);
15 }
16 };

  以下是更新的 default.js 文件的完整代码:

 1 (function () {
2 "use strict";
3
4 WinJS.Binding.optimizeBindingReferences = true;
5
6 var app = WinJS.Application;
7 var activation = Windows.ApplicationModel.Activation;
8
9 app.onactivated = function (args) {
10 if (args.detail.kind === activation.ActivationKind.launch) {
11 if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
12 // TODO: 此应用程序刚刚启动。在此处初始化
13 //您的应用程序。
14 } else {
15 // TODO: 此应用程序已从挂起状态重新激活。
16 // 在此处恢复应用程序状态。
17 }
18 args.setPromise(WinJS.UI.processAll());
19
20 var helloButton = document.getElementById("btnHello");
21
22 helloButton.addEventListener("click", buttonClickHandler, false);
23 }
24 };
25
26 app.oncheckpoint = function (args) {
27 // TODO: 即将挂起此应用程序。在此处保存
28 //需要在挂起中保留的任何状态。您可以使用
29 // WinJS.Application.sessionState 对象,该对象将在
30 //挂起中自动保存和恢复。如果您需要在
31 //挂起应用程序之前完成异步操作,请调用
32 // args.setPromise()。
33 };
34
35 function buttonClickHandler()
36 {
37 var username = document.getElementById("inputName").value;
38 if (username == "") {
39 new Windows.UI.Popups.MessageDialog("Please input your name !", "Tip").showAsync();
40 return false;
41 }
42 else {
43 var greeting = "Hello, " + username + "! Nice to meet you";
44 document.getElementById("OutputMsg").innerText = greeting;
45 }
46 }
47
48 app.start();
49 })();

  运行一下我们的程序吧

  

  执行成功了,我们再给按钮添加一些样式吧

  打开default.css文件,添加如下样式

 1 body {
2 }
3
4 .buttonstyle {
5 margin-left:6px;
6 background-color:chocolate;
7 }
8
9
10 @media screen and (-ms-view-state: fullscreen-landscape) {
11 }
12
13 @media screen and (-ms-view-state: filled) {
14 }
15
16 @media screen and (-ms-view-state: snapped) {
17 }
18
19 @media screen and (-ms-view-state: fullscreen-portrait) {
20 }

  只有.buttonStyle是我们自己添加的哦,其他是默认的

  那么怎么给按钮添加上呢,我们来到default.js文件

 1 app.onactivated = function (args) {
2 if (args.detail.kind === activation.ActivationKind.launch) {
3 if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
4 // TODO: 此应用程序刚刚启动。在此处初始化
5 //您的应用程序。
6 } else {
7 // TODO: 此应用程序已从挂起状态重新激活。
8 // 在此处恢复应用程序状态。
9 }
10 args.setPromise(WinJS.UI.processAll());
11
12 var helloButton = document.getElementById("btnHello");
13 helloButton.className = "buttonstyle";
14 helloButton.addEventListener("click", buttonClickHandler, false);
15 }
16 };

  helloButton.className="buttonstyle"; 添加上这一句就可以了,自己运行一下看看吧

  本文来自小慧only的博客,原文地址:http://www.cnblogs.com/zhaohuionly/archive/2012/11/24/2785980.html

使用JavaScript+Html创建win8应用(一)的更多相关文章

  1. 使用JavaScript+Html创建win8应用(二)

    向我们的应用中添加JavaScript 的 Windows 库控件,首先我们接着上一个demo把一个评分控件添加进来 与 HTML 控件不同的是,适用于 JavaScript 的 Windows 库控 ...

  2. JavaScript中创建类,赋值给ajax中的data参数

    缘由:因为要给根据是否选中checkbox来动态增加ajax中data的属性(ajax的data属性格式的几种方法,参考http://www.jb51.net/article/46676.htm) d ...

  3. JavaScript中创建字典对象(dictionary)实例

    这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象 ...

  4. 简单使用JSON,JavaScript中创建 JSON 对象(一)

    JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. ...

  5. JavaScript Cookies,创建,获取cookies value

    什么是cookie? cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScript 来创建和取回 cookie ...

  6. JavaScript中创建数组的方式!

    JavaScript中创建数组的方式! 利用数组字面量 // 1 直接量 console.log(Array.prototype); var arr = [1, 2, 4, 87432]; // 注意 ...

  7. Javascript对象创建

    一.概述 虽然对象字面量可以用来创建对象,但在创建多个类似的对象时,不够优雅,不符合DRY原则. 二.创建对象 有以下几种模式: 1.工厂模式 2.构造函数模式 3.原型模式 4.组合构造函数和原型模 ...

  8. javascript动态创建script标签,加载完成后调用回调

    代码如下: var head = document.getElementsByTagName('head')[0]; var script = document.createElement('scri ...

  9. JavaScript基础——创建函数

    JavaScript的最重要的一个部分是制作其他代码可以重用的代码.要做到这一点,你可以把代码组织成执行特定任务的函数.函数是结合在一个单一的块中,并给予一个名称的一系列代码语句.然后,你就可以通过引 ...

随机推荐

  1. php中实现17种正则表达式

    php中实现17种正则表达式 该教程来自:php教程网:http://php.662p.com "^\d+[ DISCUZ_CODE_1 ]quot; //非负整数(正整数 + 0) &qu ...

  2. mvc路由设置参数配置类似于url重写

    1.新建的mvc项目中Global.asax 2.在另外一个控制器中的视图中 3. 4.

  3. objective-C基本知识

    预编译指令 1.自己写的头文件最好用双引号,而系统自带的可以用尖括号. ************************************************* 点语法 p.age= 10; ...

  4. Target Operator ID has No Access to Upgrade

    If you are attempting to migrate a project between environments through application designer you mig ...

  5. 在PeopleSoft系统中实现打印页面的功能

    我们知道,在PeopleSoft HCM里,一般上了薪酬模块的话,都会客户化工资单页面,去匹配公司之前的工资单的报表的格式.有的时候,这个工资单页面又需要打印出来,以供员工的使用.PeopleSoft ...

  6. C# app.config文件配置和修改

    很多时候我们需要对系统的.config文件进度读写操作,例如:系统初始化的参数的更改.系统参数的改变都需要更新到配置文件. 首先我们有必要了解一下app.config.exe.config和vshos ...

  7. 利用js的for循环实现一个简单的“九九乘法表”

    For循环九九乘法表 for循环是javascript中一种常用的循环语句,可以很好的解决在程序中需要重复执行某些语句,利用for循环实现简单的“九九乘法表”的效果: 让循环从小到大,依次排序,并计算 ...

  8. PHP取当前页面完整URL地址

    #测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo $_SERVER['HTTP_HOST']."<br> ...

  9. 百度 迷你版 UMeditor富文本编辑器 使用方法

    第一步:下载编辑器 到官网下载 umeditor 最新版源码版本,下载之后打开 _examples/index.html 就可以看到演示例子.[下载页面] 第二步:部署编辑器到页面 解压下载的包,放到 ...

  10. How to using to code import to GL journal[AX2012]

    static void THK_importLedgerJournalTrans(Args _args) { Filename fileName = "C:\\Users\\ksiu3880 ...