软"Restart"视窗 8 应用程序



我将通过说我了解新的Windows 8应用程序生命周期以及现在如何100%由用户决定他们是否要终止应用程序或不是。因此,我想我想找到的是一种伪造我的应用程序的方法,尽管我对其他建议愿意,因为我非常熟悉现代UI应用程序。

我正在构建一个与Web 2.0服务接口的应用程序,该服务需要通过OAuth进行身份验证。幸运的是,Windows 8 WebAuthentication Broker使这简单:它显示一个异步模式窗口,该窗口包含网络框架以允许用户登录,并且完成后我可以提供回调方法。

>

现在,显然我只想显示此登录屏幕,如果我还没有为RoamingSettings.Values中的用户存储的会话密钥。我在Visual Studio中使用了网格应用模板,并在激活应用后立即在default.js中执行这些功能(检查漫游器,调用WebAuthBroker等)。现在,网格应用模板提供了一个data.js,以允许我定义我想获取的一些剩余端点。主要问题是,在用户获得身份验证之前,我无法获取这些休息端点!然而,他们仍然必须(至少我认为)提前在data.js中声明。因此,如果用户未签名,我现在正在做的事情避免错误,请参见以下内容:

if (roamingSettings.values[sessionKey]){
   list = getFeedItems(); // my function that issues all the REST calls
} else {
   list = new WinJS.Binding.List();
}

如果在身份验证完成后手动重新启动该应用程序,则可以正常工作,但是我宁愿有一种方法可以在认证完成后完全重新加载该应用程序。我已经花了很多时间了,而且我已经非常烦人,因为我已经看到其他应用程序这样做(例如,instamegram图)。

有什么想法?

在这里回答核心问题,如何软启动:window.location.reload()就是您所需要的。这只是将其刷新到位。

但是,您实际要做的就是重置ListView实例上的数据源 - 您需要做的就是在运行时掌握该控件,然后重新分配数据源对此。例如:

var lv = document.getElementById("myListView");
lv.winControl.itemSource = list;

当前将列表分配给ListView时,您还应该在您的应用中使用的一个示例。

最新更新