b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ios web markup iOS 9学习系列:Search API(2)

电脑杂谈  发布时间:2017-06-08 09:05:39  来源:网络整理

在view controller里,配置label的代码是不变的,让我们来一步一步分析 user activity 代码:

使用唯一标识符 com.tutsplus.iOS-9-Search.displayShow创建一个新的NSUserActivity对象。 这个工程已经被配置成确保使用这个标识符时要保证它不会被改变。

然后为这个user activity 分配一个userInfo字典。它将会在后面被用来修复应用的状态。

给activity的title属性赋予了一个字符串值。这就是将会在Spotlight 搜索结果里出现的内容。

为了确保可搜寻的内容不仅止限于应用的标题,你也要提供一系列的关键字。在上面的代码段中,关键字列表中包含了每个节目的名字以及它的类型。

接下来,你向NSUserActivity对象赋予一些属性来告诉操作系统你想让这个user activity用来做什么。在这个教程中,我们只是查看搜索组件的API 因此我们把Handoff禁用掉然后把search开启。

最后, 调用user activity的becomeCurrent方法,就在此时它自动的被加入到了设备的搜索结果索引中。

在以上的实现代码中,你可能注意到了两条被注释的语句。尽管我们不会在这个教程中使用这些属性,但是了解每个属性是做什么用的也是很重要的。ios web markup

在上面的实现代码中,每个节目的user activity和 搜索结果都是仅当应用曾经被打开过时而创建的。当你让你的user activity有eligibleForPublicIndexing属性时,Apple就开始从用户的搜索结果当中观察这个特殊activity的作用和交互了。如果这个搜索结果是被很多用户所使用的,Apple就提升这个user activity到它自己的云索引(cloud index)中。一旦这个user activity在这个云索引中了,它就可以被所有安装过你的应用的人搜索得到,而不管他们是否有打开过那些内容。这个属性只有当且仅当activities能被你应用的所有用户使用时才能被设置为true。

一个user activity 可以有一个可选的属性expirationDate。 当这个属性被设置时,你的user activity 只会在设置的时期之前才会展示在搜索结果里。

现在你已经知道了怎样创建一个可以在Spotlight中展示搜索结果的NSUserActivity,现在就来实验吧。编译运行你的APP,然后在你的应用中打开一些节目。做完这些后,返回到home页面(在iOS 模拟器中按 Command-Shift-H)然后向下扫或者滑动到最左边的屏幕就可以拉起搜索框视图。

在搜索框里填入某个你已经打开了的节目的标题,你将会在搜索结果里看到它被显示出来,如下图。ios web markup

Simulator Screen Shot 10 Jul 2015, 12.10.05 PM.png

另外的,输入某个你已经打开了的节目的类别。归功于你已经对user activity赋予了关键字信息,这也会导致节目将会在搜索结果列表里被列举出来。

02.png

你应用的内容作系统正确的索引出来并且结果就展现在Spotlight 里。但是,当你轻触一个搜索结果时,你的应用并不会带领用户进入他们想要的搜索结果里面去,而只是简单地拉起这个应用。

幸运的是,通过 Handoff, 你可以利用NSUserActivity类来复原应用里的正确状态。为了使这成为可能我们需要实现两个方法。

如下所示在AppDelegate类里实现 application(_:continueUserActivity:restorationHandler:) 方法:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-51781-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 聂卫卫
      聂卫卫

      长他人志气灭自己威风

    热点图片
    拼命载入中...