1

我想让我的应用程序使用 Windows 8 搜索功能,尽管浏览了 MSDN 上的大量搜索文档,但我似乎错过了第一步。首先,我已经声明我希望在项目清单中使用搜索,并且我已经在我的标题中添加了代码来链接我default.htmlsearchResults.js file.

然后文档建议使用系统搜索应该只是“工作”。这怎么不会发生在我身上,当我进行搜索时,它不会在默认的空白搜索结果页面上打开我的应用程序。我尝试将以下内容添加到我的default.js页面,但无济于事:

  // When the user submits a search query
Windows.ApplicationModel.Search.SearchPane.getForCurrentView().onquerysubmitted =
    // Call the function 
    function (eventObject) {

        winJS.log && WinJS.log("User submitted the search query: " + eventObject.queryText, "sample", "status");
};

我错过了什么?如何获得搜索魅力以实际激活我的应用程序并显示结果页面?

谢谢。

4

1 回答 1

1

我正在寻找一个 C# 项目。我创建了一个启动 js 项目,搜索在 2 分钟内工作。这就是我所做的

添加搜索合约,点击新增 -> 搜索合约

默认情况下,js 文件名为 searchResults.js

在您的主页或 default.html 页面上添加对 searchResults.js 的引用

这是我的样子

<head>
    <meta charset="utf-8" />
    <title>App4</title>

    <!-- WinJS references -->
    <link href="//Microsoft.WinJS.1.0/css/ui-dark.css" rel="stylesheet" />
    <script src="//Microsoft.WinJS.1.0/js/base.js"></script>
    <script src="//Microsoft.WinJS.1.0/js/ui.js"></script>

    <!-- App4 references -->
    <link href="/css/default.css" rel="stylesheet" />
    <script src="/js/default.js"></script>
    <script src="/searchResults.js"></script>
</head>

最后在应用清单声明中,选择搜索支持的声明。就我而言,右侧的属性是空的。

就是这样!我在 onQuerySubmitted 函数中设置了一个断点。我运行该应用程序,调用搜索超级按钮(Windows 键 + Q)开始输入文本,然后按 Enter 键应该会遇到断点!

appModel.Search.SearchPane.getForCurrentView().onquerysubmitted = function (args)
{
    nav.navigate(searchPageURI, args); // put breakpoint here
};

希望这可以帮助。

于 2012-11-17T23:59:31.907 回答