如何在Windows 8应用程序中实现和激活搜索?

时间:2012-11-17 23:25:39

标签: javascript search windows-8

我想允许我的应用程序使用Windows 8搜索功能,尽管在MSDN上浏览了大量搜索文档,但我似乎错过了第一步。首先,我已经宣布我希望在Project Manifest中使用搜索,并且我已在我的标题中添加了代码,以将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");
};

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

感谢。

1 个答案:

答案 0 :(得分: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>

最后在app manifest声明中,选择Search for supported Declarations。在我的情况下,右边的属性是空的。

就是这样! 我在onQuerySubmitted函数中添加了一个断点。我运行应用程序,调用搜索超级按钮(Windows键+ Q) 开始输入文字并按下输入它应该点击断点!

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

希望这有帮助。