如何从 Spotlight 系统搜索中为你的 App 引流

这里每天分享一个 iOS 的新知识,快来关注我吧

前言

之前的文章讲过如何为你的 App 增加系统搜索索引,不知道大家有没有在自己的项目上用上,今天来补充一个小知识点,那就是"在 App 内搜索"的实现。

当你在系统 Spotlight 搜索时,拉到最底部,会看到在App中搜索 的一个列表,点击某个 app ,可以直接进入到这个 App 的搜索页面进行关键词搜索:

还有另外一种形式,在你的搜索结果中,某个 App 的右上角,会出现在 App 中搜索的按钮,点击之后,也是跟上边相同的效果:

讲讲实现步骤

我查阅了相关的技术文档,发现实现非常简单,只需要在你的 info.plist 文件中增加一个 CoreSpotlightContinuationkey,值为 Bool 类型 true

设置完成之后再次运行项目,打开 Spotlight ,输入关键词,比如我这里输入 "swift编程",就可以看到"在 App 内搜索" 的选项了。

如果看不到这个选项的话,可以将手机重启后再试一下

应用内接收点击事件

当用户点击在 App 内搜索 按钮时,系统会打开 App ,并调用 Appdelegate 中的 application(_:continue:restorationHandler:) 方法。

然后,这个方法会收到一个 NSUserActivity 对象,其 activityType 值为 CSQueryContinuationActionType,用来标记从这个入口进来的。

这个对象还会带一个 userInfo 字典,我们可以通过解析这个字典拿到当前用户输入的内容,之后进一步跳转到你的 App 对应的搜索页面,以让用户的搜索行为持续下去:

swift 复制代码
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
    if userActivity.activityType == CSQueryContinuationActionType {
        print("从"在 App 中搜索"入口点进来的")
        let q = (userActivity.userInfo?[CSSearchQueryString] as? String) ?? ""
        let alert = UIAlertController(title: "Tip", message: "从"在 App 中搜索"入口点进来的行为会弹这个 Alert,用户搜索的内容为 \(q)", preferredStyle: .alert)
        alert.addAction(UIAlertAction(title: "OK", style: .default))
        window?.rootViewController?.present(alert, animated: true)
    }
    return true
}

当我们点击 在 App 中搜索 按钮时,系统会调用这个方法,我们解析用户输入的内容后,弹一个 UIAlertController 出来,这里你可以直接唤起你们 App 的搜索页面(如果有的话)。

支持 Spotlight 搜索是吸引用户进入你的 App 的一种非常有效的方法,因为每天有大量的流量会进入到系统搜索,像淘宝、小红书这种 App 已经内置了大量的索引,以便倒流到自己的应用,因此做好 Spotlight 支持,一定能提高应用的日活和留存

今天所讲的内容全部基于上次的这篇如何为你的 App 增加系统搜索索引,如果还没看过的可以先去看这个。

这里每天分享一个 iOS 的新知识,快来关注我吧

本文同步自微信公众号 "iOS新知",每天准时分享一个新知识,这里只是同步,想要及时学到就来关注我吧!

相关推荐
壹方秘境13 小时前
ApiCatcher支持抓包HTTP传输大文件的实现原理分享
前端·后端·客户端
逸铭20 小时前
Day 2:10 分钟搭 Electron + Vite + Vue 3——AnchorChat 的第一个窗口
electron·客户端
东坡肘子2 天前
Swift 还让你 Excited 吗?-- 肘子的 Swift 周报 #141
人工智能·swiftui·swift
壹方秘境2 天前
我用Go语言开发了一个跨平台的HTTPS抓包和调试工具
前端·后端·ios
sweet丶5 天前
Swift 元编程-Macro
swift
程序员老刘6 天前
跨平台开发地图 | 2026年6月
flutter·ai编程·客户端
初级代码游戏8 天前
easy Photo Clean公测版:快速清理iPhone照片 邀请公测
ios·iphone
库奇噜啦呼8 天前
【iOS】RunLoop学习
学习·ios
影寂ldy8 天前
WinForm PictureBox控件 + ImageList组件 完整笔记
开发语言·笔记·swift
黑科技iOS上架8 天前
iOS应用周末提交什么情况算卡审
经验分享·ios