我正在开发一个 Windows 8 html/java-script Metro 应用程序。当用户第一次启动应用程序时,将显示一个带有文本框的欢迎页面,用户可以在其中输入他/她的用户名。当用户按下按钮时,用户名被保存并发生重定向。此代码工作正常...
var appData = Windows.Storage.ApplicationData.current;
button.onclick = function (e) {
var input = document.querySelector(".welcome #userName").value;
if(input != null && input != "") {
appData.roamingSettings.values["userName"] = input;
WinJS.Navigation.navigate("/pages/items/items.html");
}
}
用户第二次进入应用程序时,我希望从起始页面到内容页面的重定向累积,而不需要用户采取任何行动......所以我看一下 roamingSettings 以及它是否包含密钥“userName” ",我尝试进行与按钮 onclick 函数中相同的 WinJS 调用。
if (appData.roamingSettings.values.hasKey("userName")) {
WinJS.Navigation.navigate("/pages/items/items.html");
}
问题是,这一次,没有重定向发生并且应用程序失败..(roamingSettings 包含正确的信息,所以它的重定向是问题所在)。代码放置在就绪函数中。
WinJS.UI.Pages.define("/pages/welcome/welcome.html", {
ready: function (element, options) {
})();
所以我的问题是,使用 WinJS.Navigation 执行从一个页面到另一个页面的条件重定向的正确方法是什么?我的代码有什么问题?