iOS9 Search API 之 Spotlight

2023-05-16

iOS9以后 有三种api提供搜搜方式 加强引导用户关注 我们的app及相关内容的方式

NSUserActivity

Web Markup 

Core Spotlight 用法

前两种 实战操作性不够强(后续补充) 这里先讲 spotlight 实现机制和方法 分析

iOS 8的时候 spotlight 就可以搜索应用名称,iOS9以后,加强了深度搜索功能,就是 你预设置在手机里的”埋点”,都可以在搜索里面,展示给用户,当用户点击暴露的搜索结果时候 会根据需求进行唤醒应用/跳转指定页面等操作.

也就是说,当且仅当你至少打开一次应用触发了埋点操作,此功能才正式生效.

操作方式:

1. 使用框架CoreSpotlight.framework  引入头文件  #import <CoreSpotlight/CoreSpotlight.h>

2. 要创建检索数据model, 这个完全看需求了 一般model: title,content,iconImagePath,type

3. 在加载应用后 要缓存 spotlight 数据源, 前提也很简单 系统规格不小于iOS9 不然会挂掉,比如空指针的原因等.

也就是说,只有iOS9以上的用用 才会享用到 该特性,同 上一篇文章讲 universal links一样

然后在appdelegate  回调方法里 做相应操作 比如触发跳转到指定页面的操作.

上代码:

1.

正如我做的标记,这里 NSActivity 的属性userInfo 里面 唯一可操作的键值对

 [@"kCSSearchableItemActivityIdentifier" :value]

所以 如果有什么具体参数 要在触发的操作中使用 ,全部嵌入这个value吧. 

建议多测测 别被低版本系统坑了,  我手里没iOS 9以下真机,写这篇文章时候没测到,如果你觉得有问题可以给我写评论. 我也会在真正运用到该方法时候,修正博客内容.

上图:(我插入了 一个 plist文件, 比如 我可以搜索 胃疼, 胃疼内容为例)

 

 

然后点击 就跳转到该应用了 无论是 挂起 还是启动app  如果指定了页面 ,就会跳转到指定页面

https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html

http://www.cnblogs.com/CocoonJin/p/4703366.html?utm_source=tuicool&utm_medium=referral

http://www.cocoachina.com/ios/20150819/13116.html

http://www.ithao123.cn/content-10752357.html

mdsa.51cto.com/art/201507/484497.htm

http://www.csdn.net/article/2015-07-16/2825222-search-apis

 

转载于:https://www.cnblogs.com/someonelikeyou/p/5568102.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS9 Search API 之 Spotlight 的相关文章

  • H2数据库排序规则:选择什么?

    经过大量阅读和实验后 似乎我想要主要的搜索强度 但第三或相同的排序强度 主要问题 用 H2 或任何其他数据库 可以实现吗 第二个问题 我是这里唯一的人吗 或者你们中有人也喜欢上述组合吗 一些确认会对我的理智有所帮助 背景 看来排序规则只能在
  • jQuery - 解析 JSON 数据 - 变量名称遇到问题

    我第一次深入研究 JSON 数据的使用 不过我有一些使用 jQuery 的经验 我发布到此 URL tumblr api jyoseph com api read json 我想做的是输出返回的 json 到目前为止我所拥有的 docume
  • 如何在S3中存储数据并允许用户使用rails API / iOS客户端以安全的方式访问?

    我是编写 Rails 和 API 的新手 我需要一些有关 S3 存储解决方案的帮助 这是我的问题 我正在为 iOS 应用程序编写一个 API 用户在 iOS 上使用 Facebook API 登录 服务器根据 Facebook 向 iOS
  • 授予 Rails 应用 API 访问权限的最佳身份验证方法

    我想为我的网络应用程序提供经过身份验证的 API 访问 此类服务的消费者通常是其他网站 服务 验证这些用户身份的最佳方法是什么 OAuth openID http 身份验证 正如我们的工作一样 哪个最好 的答案是这样的 是 这取决于 HTT
  • 在 IOS9 中的 Cordova 应用程序上使用 JQuery/Javascript 的 window.history 问题

    我在 IOS9 测试版 下使用 Cordova 应用程序时遇到问题 我正在使用最新的 Cordova 和 JQuery 移动版本 window history 未更新 导致以下故障 window history go 1 无法返回页面 即使
  • 在react.js中调用API渲染数组图片

    我有 API 其中包括 pictures http storage web source images 2016 10 28 edac054f88fd16aee7bc144545fea4b2 jpg http storage web sou
  • 关系上的核心数据属性?

    我刚刚开始使用核心数据 我有一个Headache实体和一个Medication实体 头痛和药物之间存在多对多的关系 当您加重头痛时 您可以选择多种药物 我希望能够指定这些药物的数量 我对 MySQL 更熟悉 您可以在其中创建一个数据透视表
  • 如何显示AVPictureInPictureController?

    我正在尝试使用播放视频AV画中画控制器最近在IOS9 使用此代码 AVPlayer AVPlayer AVPlayer playerWithURL url AVPlayerLayer layer AVPlayerLayer playerLa
  • 通过API更新Twitter背景

    我在通过 Twitter 的 API 更新背景时遇到了一些问题 target url http www google com logos 11th birthday gif ch curl init curl setopt ch CURLO
  • Codeception API 测试响应返回“N/A”

    我正在使用 Laravel 和 Codeception 作为测试框架编写 API 我无法让 Codeception 返回响应代码 我可以从 Codeception 获取响应代码 以及 JSON 响应 我编写了一个简单的测试来从 GET 请求
  • 正在搜索 Mercurial 存储库 (TortoiseHG)?

    有什么方法可以输入特定的文件名 例如 xyz txt 并使用 TortoiseHG 在 Mercurial 存储库中搜索该文件的任何签入 如果没有 为什么不呢 这不就是版本控制的用途吗 在 Hg Repository Explorer 窗口
  • 中间件 API 的最佳实践是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们正在开发一个中间件 SDK 采用 C 和 Java 语言 供游戏开发人员 动画软件开发人员 阿凡达开
  • 适用于 iPhone 和 HTTP 直播的实时视频聊天

    所以一般来说 我想为 iPhone 制作一个具有视频聊天功能的应用程序 但经过多次搜索 我仍然找不到任何成功的结果 是否有任何公共或私有 API 可用于在 iPhone 上执行此操作 如果您的答案是 是 请帮助我 基本上 我想要的是读取连接
  • Yammer API 限制

    Yammer Rest api 文档表示 每个应用程序每个用户在 10 秒内最多可以发出 10 个请求 问题 什么是user这里 是为当前经过身份验证的 yammer 用户发出请求的 IP 地址还是承载令牌 如果我们所有的用户都使用相同的外
  • 如何在 Visual Studio 中搜索并让它忽略注释掉的内容?

    我正在 Visual Studio 2005 中重构 C 代码库 我现在已经完成了这个过程的一半 我已经注释掉了很多旧代码并替换或移动了它 现在我正在搜索 看看下一步必须更改 但搜索功能不断为我带来我不再关心的旧注释掉的内容 我还不想删除旧
  • Twitter 的推文按钮有回调吗?

    有没有办法在 Twitter 的推文按钮上注册回调 我希望能够跟踪我网站上的哪些特定用户在 Twitter 上发布了链接 我无法添加 onClick 事件 因为它是跨域 iFrame 还有其他想法吗 我见过一种方法 https stacko
  • 警告:访问循环依赖内模块导出的不存在属性“MongoError”

    我正在使用节点执行 API 并使用 Mongoose 当我给一个yarn dev启动我的 Nodemon Mongo 出现错误 我不知道如何解决这个问题 有人有什么想法吗 我使用的是 MongoDB Atlas 数据库 就在出现以下错误之后
  • 如何使用 Google 帐户对我们网站中的用户进行身份验证

    如何在我们的网站中使用 Google 帐户对用户进行身份验证 我希望用户重定向到谷歌登录页面 然后将他重定向到我的网站 我想要这个 PHP 实现 你要OAuth http code google com apis accounts docs
  • SSDT SQL Server 数据库项目中用于架构比较的命令行/API?

    在 Visual Studio 2012 中 我们有Schema Compare http msdn microsoft com en us library hh272690 28v vs 103 29 aspx in SSDT http
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private

随机推荐

  • 传奇3服务器配置文件,传奇3.0服务器的架设和设置详细介绍

    我们想要把传奇3 0架设出来就需要先把一些架设的基础信息搞清楚 xff0c 只有先把这些基础弄清楚我们在架设的时候就能够有成效 xff0c 因为我们要是连基础的设置都没有搞好就去弄一些深层次的东西这个我想就是神仙都难搞定 首先我们需要把数据
  • git guest查看不了代码_深度学习应掌握哪些 Git 开发技术?

    Git作为当前世界上最好的分布式版本管理工具 xff0c 从事深度学习少不了写代码 xff0c 写代码自然有版本控制的问题 特别是在生产环境下 xff0c 和组里的同事一起协作进行深度学习项目开发时 xff0c 版本控制和多人协作必然少不了
  • linux gnome kde桌面,七大Linux桌面:GNOME和KDE Plasma 53

    02七大Linux桌面 xff1a GNOME和KDE Plasma 53 二 GNOME 3 与其它主流桌面Linux发行版一样 xff0c Ubuntu曾使用过GNOME桌面方案 自从GNOME 2逐步升级到GNOME 3乃至GNOME
  • C# winform 捕获全局异常

    using System using System Collections Generic using System Windows Forms using System IO namespace GobalException static
  • Python3 easyinstall error

    When installing some supported packages in python3 2 2 usually got a error cannot remember clearly but like array object
  • boost learn notes

    lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34 gt boost learn notes boost learn notes Documents http www boost org
  • SQL Server DBA常见面试 笔试问题

    很多开发人员都想成为一名DBA xff0c 也有很多人一开始就把自己定位成为一名DBA xff0c DBA究竟需要掌握些什么知识和技能呢 以下是我做DBA工作和面试DBA时 xff0c 整理的一些DBA方面的三十个问题 xff0c 三十个大
  • 用MTR诊断网络问题

    网络诊断背景安装MTR LinuxWindows苹果系统生成MTR报告 在基于Unix的系统上使用MTR在Windows系统上使用MTR阅读MTR报告分析MTR报告 验证数据包丢失网络延迟通用MTR报告 目标主机网络配置不正确住宅或商业路由
  • Rhino Mock

    mock interfaces delegates and classes including those with parameterized constructors set expectations on the called met
  • Url重写

    例如 xff1a http www baidu com view aspx id 61 1 和http www baidu com view 1 aspx 访问的页面相同 只需要全局应用程序类的Application BeginReques
  • [置顶] C# 邮件发送方法【NetMail方式】

    在上一篇博文C 邮件发送方法 webMail方式 中介绍了Webmail的邮件发送方式 xff0c 现在介绍下C 中使用NetMail发送邮件的方式 xff0c 测试代码如下 xff1a lt summary gt NetMail方式测试通
  • 用py2exe打包后的程序一闪而过

    最近用python写了个小工具 xff0c share给同事使用 xff0c 但是在测试的时候发现点完exe文件 xff0c 就一闪而过 不知道发生了什么查询了伟大的谷歌 xff0c 发现只要在结尾加上 os system 39 pause
  • WebView显示的网页在大分辨率屏下被放大--解决方案

    例如适合800px宽度的页面 xff0c 如果通过WebView在1024px的屏幕宽度下显示时 xff0c 内容 图片 会被放大 xff0c 整体页面会超出屏幕 试了将WebView的settings中的缩放都关闭了也不行 后来发现了We
  • ExtJs TreePanel 不能加载ashx数据的解决办法

    今天学习Extjs TreePanel 时在加载动态数据时经常加载不进来 xff0c 因为我是使用MVC2获取动态数据的 xff0c 单独调试MVC的返回数据时OK的 xff0c 网上有很多解决方案 xff0c 其中最简单的是 xff1a
  • 信息树和XML文件的遍历及XML文件的应用

    function Save 将INfomationTree中的不是Http开头的组 xff0c 保存到本地 xff0c 然后再从本地上传到服务器端 var IInformationTree 61 document parentWindow
  • chapter 4: A literature review(re-read papers to gain fresh understanding)

    chapter 4 A literature review re read papers to gain fresh understanding 1 Writing for Science and Engineering Papers Pr
  • Connect to a Windows PC from Ubuntu via Remote Desktop Connection

    http www 7tutorials com connecting windows remote desktop ubuntu A useful feature of Windows is being able to connect to
  • HTTP MIME type

    扩展名 类型 子类型 IIS 4 0 IIS 5 0 application octet stream 是 是 323 text h323 否 是 acx application internet property stream 否 是 a
  • [资源分享]Linode免费使用 [ 资源分享 ]

    Linode 是目前最优秀的 VPS 服务提供商 最近 xff0c Linode 推出了一种全新的 Linode 帐户注册方式 xff0c 该方式允许用户试用 Linode VPS 4个小时的时间而不需要输入付款信息 xff08 只要有邮箱
  • iOS9 Search API 之 Spotlight

    iOS9以后 有三种api提供搜搜方式 加强引导用户关注 我们的app及相关内容的方式 NSUserActivity Web Markup Core Spotlight 用法 前两种 实战操作性不够强 后续补充 这里先讲 spotlight