Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

WinJSのブラウザアプリで画面遷移

$
0
0

WinJSを使ったブラウザアプリで、どうやって画面遷移するのか試行錯誤してました。結論から言うとストアアプリと同じでした…。

ストアアプリからコピーして下準備

Windowsストアアプリのナビゲーションするアプリから、navigator.jsをコピーしてきます。そして、トップページに以下のようなnavigator.jsで定義されているコントロールを使うHTMLを書きます。

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><linkhref="WinJS/css/ui-dark.css"rel="stylesheet" /><scriptsrc="WinJS/js/base.js"></script><scriptsrc="WinJS/js/ui.js"></script><scriptsrc="WinJS/js/WinJS.js"></script><scriptsrc="Script/navigator.js"></script><scriptsrc="Script/index.js"></script><title>Hello winjs</title></head><body><divid="container"data-win-control="Application.PageControlNavigator"data-win-options="{home: '/pages/default/default.html'}"></div></body></html>

初期画面の表示

index.jsでは、初期画面に遷移する処理を書きます。先ほどのindex.htmlで定義したcontainerの要素のwinControlをとってきてhomeプロパティに指定した値に遷移するようにしています。

(function () {
    
    WinJS.Application.onready = function () {
        WinJS.UI.processAll().then(function () {var host = document.querySelector("#container").winControl;
            WinJS.Navigation.navigate(host.home);
        });
    }

    WinJS.Application.start();
})();

初期画面の準備

最初に表示される初期画面の準備をします。こんな感じで。ちゃんとWinJSのコントロールが使えるか確認するためにRatingコントロールを置いてみました。

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><scriptsrc="default.js"></script><title></title></head><body>
    OK<br/><buttonid="nextButton">Next</button><br/><divid="rating"data-win-control="WinJS.UI.Rating"></div></body></html>

初期画面の処理

Pageを定義して、その中のreadyメソッドで初期化時の処理を行います。単純にボタンをとってきて、クリックしたら次のページへ遷移するようにしています。

WinJS.UI.Pages.define("/pages/default/default.html", {
    ready: function () {var nextButton = document.querySelector("#nextButton");
        nextButton.addEventListener("click", function () {
            WinJS.Navigation.navigate("/pages/next/next.html");
        });
    }});

遷移先のページの準備

これはただのHTMLです。WinJS.UI.BackButton使ってるくらいが目新しいところです。こいつを使うと戻れます。

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><title></title></head><body><buttondata-win-control="WinJS.UI.BackButton"></button><h1class="win-type-xx-large"style="display:inline;">next page</h1></body></html>

実行して動作確認

実行すると初期画面がちゃんと表示されます。

f:id:okazuki:20150103201044p:plain

Nextボタンを押すとちゃんと画面遷移した!

f:id:okazuki:20150103201139p:plain


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>