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

前言

之前的文章讲过如何为你的 App 添加体系查找索引,不知道咱们有没有在自己的项目上用上,今日来弥补一个小知识点,那就是“在 App 内查找”的完结。

当你在体系 Spotlight 查找时,拉到最底部,会看到在App中查找的一个列表,点击某个 app,能够直接进入到这个 App 的查找页面进行关键词查找:

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

还有别的一种形式,在你的查找成果中,某个 App 的右上角,会呈现在 App 中查找的按钮,点击之后,也是跟上边相同的作用:

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

讲讲完结过程

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

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

设置完结之后再次运转项目,翻开 Spotlight,输入关键词,比方我这里输入 “swift编程”,就能够看到“在 App 内查找” 的选项了。

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

假如看不到这个选项的话,能够将手机重启后再试一下

使用内接收点击事件

当用户点击在 App 内查找按钮时,体系会翻开 App,并调用 Appdelegate 中的 application(_:continue:restorationHandler:) 办法。

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

这个对象还会带一个 userInfo 字典,咱们能够经过解析这个字典拿到当时用户输入的内容,之后进一步跳转到你的 App 对应的查找页面,以让用户的查找行为继续下去:

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 引流

支撑 Spotlight 查找是吸引用户进入你的 App 的一种非常有效的办法,因为每天有很多的流量会进入到体系查找,像淘宝、小红书这种 App 已经内置了很多的索引,以便倒流到自己的使用,因而做好 Spotlight 支撑,一定能进步使用的日活和留存

今日所讲的内容全部根据前次的这篇如何为你的 App 添加体系查找索引,假如还没看过的能够先去看这个。

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

本文同步自微信公众号 “iOS新知”,每天准时分享一个新知识,这里仅仅同步,想要及时学到就来重视我吧!