我正在使用 Windows 8 搜索合同功能,特别是在将搜索合同添加到项目时创建的默认 searchResults.js 文件。当我尝试搜索处于暂停或终止状态(即不是主窗口)的应用程序时,就会出现我的问题。
代码如下:
// Handles when a users performs a search and the app is not already the main app
WinJS.Application.addEventListener("activated", function (args) {
//If activation kind is search...
if (args.detail.kind === appModel.Activation.ActivationKind.search) {
args.setPromise(ui.processAll().then(function () {
// If there is no current navigation location
if (!nav.location) {
// Declare object
nav.history.current = { location: Application.navigator.home, initialState: {} };
}
// Else navigate to searchPageURI,
return nav.navigate(searchPageURI, { queryText: args.detail.queryText });
}));
}
});
我自己添加了注释以尝试分解代码。现在我理解了这个前提,这段代码检查应用程序是如何被激活的,并根据它们是否是现有的导航位置来运行两个不同的进程。但是,当我运行该应用程序并从外部搜索时,我收到一个错误,即:JavaScript runtime error: 'Application' is undefined
. 它指的是以下行:
nav.history.current = { location: Application.navigator.home, initialState: {} };
有人可以解释为什么会发生这种情况以及我已经定义了什么,或者我应该在哪里定义它?