这里每天分享一个 iOS 的新知识,快来重视我吧
前言
之前的文章讲过如何为你的 App 添加体系查找索引,不知道咱们有没有在自己的项目上用上,今日来弥补一个小知识点,那就是“在 App 内查找”的完结。
当你在体系 Spotlight 查找时,拉到最底部,会看到在App中查找的一个列表,点击某个 app,能够直接进入到这个 App 的查找页面进行关键词查找:
还有别的一种形式,在你的查找成果中,某个 App 的右上角,会呈现在 App 中查找的按钮,点击之后,也是跟上边相同的作用:
讲讲完结过程
我查阅了相关的技能文档,发现完结非常简单,只需要在你的 info.plist
文件中添加一个 CoreSpotlightContinuation
的 key
,值为 Bool
类型 true
。
设置完结之后再次运转项目,翻开 Spotlight,输入关键词,比方我这里输入 “swift编程”,就能够看到“在 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 的一种非常有效的办法,因为每天有很多的流量会进入到体系查找,像淘宝、小红书这种 App 已经内置了很多的索引,以便倒流到自己的使用,因而做好 Spotlight
支撑,一定能进步使用的日活和留存。
今日所讲的内容全部根据前次的这篇如何为你的 App 添加体系查找索引,假如还没看过的能够先去看这个。
这里每天分享一个 iOS 的新知识,快来重视我吧
本文同步自微信公众号 “iOS新知”,每天准时分享一个新知识,这里仅仅同步,想要及时学到就来重视我吧!