【问题标题】:How to redirect user based on application roaming settings with WinJS.Navigation如何使用 WinJS.Navigation 根据应用程序漫游设置重定向用户
【发布时间】:2013-04-19 13:59:12
【问题描述】:

我正在开发一个 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 包含正确的信息,所以问题是重定向)。代码放在 ready 函数中。

WinJS.UI.Pages.define("/pages/welcome/welcome.html", {
   ready: function (element, options) {
})();

所以我的问题是,使用 WinJS.Navigation 执行从一个页面到另一个页面的条件重定向的正确方法是什么?我的代码有什么问题?

【问题讨论】:

  • 您是否尝试过将条件重定向放在 default.js 文件中?在激活的事件处理程序中?无论如何,这应该会给您更好的用户体验,因为它不会导致用户等待欢迎页面准备好,然后被重定向到项目页面,也导致项目页面上有一个返回按钮到欢迎页面。
  • 将它放在 default.js 中是一个更好的解决方案,感谢您的有用评论!

标签: javascript navigation microsoft-metro winjs


【解决方案1】:

在 default.js 中进行导航(如 @Gotdibbs 建议的那样)应该可以工作。激活的处理程序中的代码在函数结束时应该看起来像这样。

args.setPromise(WinJS.UI.processAll().then(function () {
    // if app was suspended while on a page, go there
    // else ...
    if (nav.location) {
        nav.history.current.initialPlaceholder = true;
        return nav.navigate(nav.location, nav.state);
    }
    else if (appData.roamingSettings.values.hasKey("userName")) {
        WinJS.Navigation.navigate("/pages/items/items.html");
    }
    else {
        return nav.navigate(Application.navigator.home);
    }
}));

【讨论】:

    猜你喜欢
    • 2010-12-14
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 2014-03-02
    • 1970-01-01
    相关资源
    最近更新 更多