前面幾篇我們介紹了如何利用 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 是清單檔案,負責設定應用名稱、起始頁、磁貼、功能、聲明等等。
有一個地方需要注意,那就是應用程式頁籤中 入口點 變成了 起始頁 ,熟悉BS開發的同學們肯定不會對起始頁陌生。
下面來看看起始頁 default.html:
這是一個很簡單的html構成,我們看到檔案中添加了對WinJS 和 針對起始頁的 default.js 和 default.css 的引用。
來看看default.js:
我們看到,該檔案中有兩個很重要的方法,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做如下修改
上面定義了兩個變量,在下面的onactivated方法中加入以下代碼來替換 args.setPromise(WinJS.UI.processAll());
然後在default.html 頁面的body中加入
這樣就可以在啟動時,指定顯示main.html 了。
(2). 在default.js 裡指定跳轉
對default.js做如下修改
定義nav變量,下面onactivated方法中加入如下代碼替換 args.setPromise(WinJS.UI.processAll());
然後加入下面方法
最後在default.html 檔案中加入
這樣也完成了啟動時的頁面跳轉到main.html 的要求。
好了,到這裡我們就利用WinJS 和 Html 完成了簡單項目的建立,接下來我們利用WinJS示範XAML中介紹過的其他功能,謝謝。