注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

分享,态度 ·~~

—— 十年太长,五年;如果可以回到五年前,你最想对那时候的自己说什么?

 
 
 

日志

 
 

Windows8:Search - 让你的Ap拥有完美的搜索体验  

2011-10-27 17:41:55|  分类: Windows 8 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

User通常会找寻他们感兴趣的内容,这些内容或许会在网络上、在本地,或者在你的Ap中。
你可能突然想看保存在PC的一个文件,但是不知道它放在哪里,也不记得它的名字;也可能想看看今天的天气、股票,于是你打开浏览器搜索;在传统的Ap中如果有感兴趣的内容,你需要去找到并运行Ap、找到内容,但仍然有可能没有办法使用这些内容....所有这些操作入口都不同。
是否有办法让这些操作统一起来?答案是SearchContract。SearchContract允许你在系统(Windows8)的任何地方搜索到Ap中的内容。


初识Search
StartScreen的Search包含了三个位置:
Apps、Settings、Files。

Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~ 
值的一提的是,Files可以通过名字、附注、作者、修改日期等等多个属性来搜索。

再一个例子,打开Search,输入“Viper Creek Club”,点击Files,可以在本地文件中搜索到他们的歌曲:

Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~

 点击Search列表中的Tweet@rama,Tweet@rama开始运行并且显示它关于“Viper Creek Club”的搜索结果:

Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~ 
再在Search列表中选择Bing,Bing开始运行并显示网络上有关“Viper Creek Club”的搜索结果:
Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~ 
只需要一次输入,你可以在本地磁盘、在网络上、在Ap中找到所需要的所有信息。

现在选择Socialite,输入“ste”,可以看到搜索中列出了“搜索建议”(result suggestion)。点击某一个联系人,可以看到他的详细信息。所以,ResultSuggestion并不仅仅进入Ap,你可以看到Socialite中他的详细信息。Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~ 


在系统和Ap中的Search
Search是和Ap及其提供的内容紧密相关的,Search只是一个通道。Search不再把Web和Local端的查询分成两类过程,Search统一了两者的操作体验。
简单分解Search的结构如下:Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~

 

实现SearchContract的三个步骤:
(本文结尾的视频18:00介绍了利用VisualStudio中模板构建完整Search的例子)
1. 注册Search:你可以通过Visual Studio提供的模板方便地实现;
2. 注册并处理响应,三个事件:Search activation、Query submitted、Suggestions requested;
3. 提供搜索建议(search suggestions)。

Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~


Search的设置和事件(Search settings & events)

Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~

Search activationWindows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~

Query submittedWindows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~

Suggestions requestedWindows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~

关于响应Search事件的几点忠告:
1. 别把“一次性启动逻辑”(one time start up logic)放在你的Search”触发处理器”(activation handler)上;
2. 帮助User方便地返回在Search之前的页面;
3. 如果你的Ap是显示在屏幕的SnapAp详细,当接收到Search activation,会变成屏幕上的MainAp;
4. 当User快速切换时,保存已经被应用的Filter。


自定义Search

搜索提示框

Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~

 Code Demo:

// Setting placeholder text
// Set the cue text via the placeholderText property in the search pane

var winsearch = Windows.ApplicationModel.Search;
winsearch.SearchPane.getForCurrentView().placeholderText = “Places NearMe";

 

Search结果分组

Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~
Code Demo:
// Adding a search separator
// Code that is called when suggestions requested event is fired

function onSuggestionsRequested(e) {
        var query = e.queryText.toLowerCase();
        var suggestions = e.request.searchSuggestionCollection;

        //Add query suggestions to the search suggestion collection
        suggestions.appendSearchSeparator(“Friends”);
        //Add more query suggestions
}

 

什么时候使用SearchContract?
如果你需要在你的Ap中增加Search,用Windows8提供的Search charm,实现SearchContract;你不需要在Ap内重新绘制一个搜索框。
以下的情况可能不适合实现SearchContract:
1. Ap需要“文本搜索”(find in doc)功能,比如PDF阅读器;
2. Ap是游戏,或者工具软件。

 

Search结果呈现

Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~
Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~
 

过滤Search结果(Filter)

Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~
 

提供Search建议

Windows8:Search - 让你的Ap拥有完美的搜索体验 - 乂乂 - 一个人,一支烟  ·~~

 
所以,微软的建议是:
1. 实现SearchContract,让你的Ap或里面的信息可以在Windows8的任何地方被搜索到;
2. 实现Search一次,工作在任何地方,甚至其它的Ap;
3. 使用Search模板,它提供了大量具优秀Search体验的例子。

 有关SearchContract的C#代码实现,另写了一篇文章详细介绍:Windows8:基于C#的Search Contract实现

 

以上内容中的Windows8系统截图来自Priya Vaidyanathan在微软开发者大会上的主题演讲:
Search: integrating into the Windows 8 search experience
视频地址:http://channel9.msdn.com/Events/BUILD/BUILD2011/APP-406T

相关的其它演讲也可以在Channel9上找到:
[APP-741T] Metro style apps using XAML: Make your app shine
[APP-210T] Build data-driven collection and list apps using ListView in HTML5
[APP-405T] Share: your app powers the Windows 8 share experience
[APP-408T] Integrating with the Windows device experience
[APP-398T] How to declare your app’s capabilities

  评论这张
 
阅读(2307)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017