欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > > 内容正文

比安卓做得更好,iOS 15通用搜索功能这么牛?,

来源: 开发者 投稿于  被查看 35028 次 评论:53

比安卓做得更好,iOS 15通用搜索功能这么牛?,


搜索(Spotlight)在iOS上有很长的历史了。事实上,这项功能最早出现在macOS上,后来苹果才在iOS 3上推出了相同的搜索功能。

如果按照年份来算的话,苹果的搜索功能最早亮相于2004年的WWDC大会上,并在2005年4月正式登陆macOS平台。而iOS上的搜索功能,相较于macOS晚了4年。

随着iOS版本不断更迭,搜索功能也一直在进化。近日,据外媒MacRumors报道,苹果在iOS 15中对搜索功能进行了多项改进。由于Siri数据库得到了进一步拓展,使得搜索功能变得更加智能,与以往的版本相比可以搜索到更多信息。

例如,如果你在搜索栏中输入电影或电视节目,会看到很多观看节目的方式、演员、预告片等信息。而在iOS 14中,搜索功能受到了很大限制,通常仅限于网页搜索。

又或者你可以使用搜索功能查找网络图片,只需输入关键字即可。当你点击图片时,系统会自动显示更多相关图片。

除了在搜索栏中查找网络图片外,你还可以直接搜索本体相册中特定的照片。对于那些手机上存了很多照片的小伙伴来说,照片搜索无疑是为他们提供了极大便利,可以更精准、快速地找到自己想要查看的照片。

在以往的iOS版本中,只要iPhone处于锁屏状态,手指向下滑动屏幕是无法呼出搜索功能的。但是现在用户可以直接进入搜索功能界面,只不过苹果做了一些限制,比如搜索不会显示照片、短信、联系人等个人信息,只允许搜索网络上的信息。苹果这么做的目的,可能是为了保护用户的隐私安全。

不仅如此,iOS 15改进了App Store搜索,用户只需在搜索栏中输入自己想要使用的应用,即可直接下载安装,相当于简化了进入App Store,再在App中搜索应用这一操作流程。

此外,搜索功能还加入了对App Clips的支持,用户可以在地图结果中看到操作按钮,点击即可访问菜单、票务、预订、放映时间等操作。

值得一提的是,作为儿童安全功能套件的一部分,苹果正在Siri和搜索功能中加入相关保护措施。比如,如果用户搜索儿童性虐待等信息,系统会自动提醒用户这些是错误的兴趣。

看完苹果对搜索功能的各项改进后,不禁让人想起了苹果高管在一次采访中的对话。有人提问为何iPad没有自带天气和计算器App时,苹果高级副总裁克雷格·费德里吉表示,有些事情苹果没有做,是因为他们想,如果要做,就要做到这个领域中顶尖的水平。当苹果觉得可以做到非常好的时候,他们才会去做。

现在看来,iOS 15中的搜索功能,已经验证了苹果高管克雷格的说法。

苹果Spotlight背后的操作逻辑

当然,苹果的搜索功能不是一步登天,能做到现在这么出色也是需要一个过程的,那么苹果是如何构建应用内搜索的呢?

在2015年的WWDC大会上,苹果推出了全新的iOS Search API,一度让「应用内搜索」这个话题成为热门。所谓应用内搜索,指的是能够搜索应用内的内容。与网页内容不同,应用内容通常没有URI(统一资源标志符),搜索引擎自然也就无法准确定位,而且点击搜索结果还要拉起应用加载内容。

所以,想要实现应用内搜索,需要同时满足两个条件:1.建立唯一对应的索引;2.让搜索引擎知道要拉起哪个应用。而苹果的iOS Search API刚好是一个系统性的解决应用内搜索的方案,在这套方案中,应用内容被抽象的分为:私密内容(Priviate)和公开内容(Public),与之对应的两个索引为On-Device Index(本地)和Cloud Index(云端)。

需要注意的是,只有索引才会有云端和本地之分,因为私密内容也可以上传云端,所以内容本身没有这些区分。

为了解决公开内容和私密内容的索引问题,苹果在iOS Search API中设置了三个子API。首先是NSUserActivity API,即搜索看过的内容。在iOS9中,苹果在搜索功能里引入了该API,软件开发者可以利用该API捕捉当前页面的元数据。举个例子,淘宝、京东等都调用了这个API,我们可以在Spotlight里搜索到在淘宝、京东浏览过的宝贝。

其次是CoreSpotlight API,即索引应用内所有内容。以豆瓣为例,用户可以在搜索栏中输入关键字来查找豆瓣上的电影。

最后是Web Markup,即搜索网页上的应用内容。这样一来,即便没有安装某个App,苹果的索引也能在网页上搜索特定的标记,在Sarfi或Spotlight上显示搜索结果。比如用户要在携程订酒店,但手机上未安装携程App,这时Spotlight搜索结果则会以网页的形式显示。

而iOS 15中的Spotlight,苹果可能在iOS Search API加入了新的索引,以此来丰富应用内搜索功能。关于应用内搜索,苹果给出了自己的方案。作为竞争对手的谷歌,自然也有类似于Spotlight的应用内搜索功能。

应用内搜索功能,安卓也有

与苹果不同,谷歌的思路很简单,就是增强谷歌搜索的能力,让它不仅限于搜索网页内容,还能搜索应用内的内容,甚至是搜索到用户在手机本地存储的内容。

为了实现应用内搜索,谷歌推出了Firebase App Indexing方案。App Indexing可以将开发者开发的应用纳入谷歌搜索,如果用户安装了某个App,点击搜索结果可以直接打开该App;如果没有安装,开发者可以通过App Indexing来设置接下来的搜索结果,包括:对应的Web页面,打开应用商店以及出现小卡片介绍应用,然后再转入应用商店。

谷歌的Firebase App Indexing与苹果的ios Search API有一个共同点,那就是都能索引网页数据、应用页面和个人数据。而两者之间的不同点在于,谷歌的Firebase App Indexing是可以跨平台的,在iOS和Android都有完整的解决方案,开发者只需适配一次,并且应用所获得的流量主要依赖于搜索结果中的排位。

虽然谷歌的应用内搜索方案与苹果的有些类似,但从开发者文档来看,苹果的iOS Search API会显得更加完备和成熟。如果非要开发者在两者之间选其一的话,谷歌的方案会更有吸引力,因为谷歌搜索的流量是现成的。

不过,现在看来,对比谷歌的应用内搜索,苹果的Spotlight可以说是要更胜一筹,能够将搜索结果进一步细化,让用户可以更快速地找到自己想要看到的内容。

用户评论