iOS 9 Core Spotlight搜索實例代碼
前言
感覺 Spotlight 這個功能還是蠻有用的,能提升用戶活躍,增加應用內(nèi)容曝光幾率。
正文
一、實現(xiàn)(iOS 9.0)
1.1 添加索引
var searchableItems = [CSSearchableItem]()
for app in apps {
let searchableItemAttributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeText as String)
searchableItemAttributeSet.title = app.label
searchableItemAttributeSet.contentDescription = "Watch \(app.label) LIVE on Shou"
let searchableItem = CSSearchableItem(uniqueIdentifier: app.id, domainIdentifier: "youappbundlerid.apps", attributeSet: searchableItemAttributeSet)
searchableItems.append(searchableItem)
}
CSSearchableIndex.defaultSearchableIndex().indexSearchableItems(searchableItems, completionHandler: { (error: NSError?) in
if error == nil {
print("initSpotlight...completed")
} else {
print("\(error)")
}
})
一定要注意把上面代碼加到子線程里面執(zhí)行,略慢。可以在 AppDelegate 里面從服務器請求完數(shù)據(jù)再加索引的。
1.2 接收點擊事件
@available(iOS 8.0, *)
func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
if #available(iOS 9.0, *) {
if userActivity.activityType == CSSearchableItemActionType {
if let uniqueIdentifier = userActivity.userInfo?[CSSearchableItemActivityIdentifier] as? String, let label = userActivity.title {
// 頁面跳轉(zhuǎn)
}
}
}
return true
}
二、額外經(jīng)驗
2.1 CSSearchableItemAttributeSet
可以不設置 thumbnailData ,這樣默認就是當前應用的 LOGO;另外注意 thumbnailURL 并不是用來指定網(wǎng)絡圖片地址的 - - #,所以你要加縮略圖的話需要先把網(wǎng)上的下載到本地再設置
2.2 CSSearchableItem
默認失效是一個月,另外發(fā)現(xiàn)無法攜帶更多數(shù)據(jù)(比如通過 CSSearchableItemAttributeSet 的 setValue ,在 userActivity 那邊都接收不到)
2.3 沒有找到索引條數(shù)的限制
http://stackoverflow.com/questions/35284223/is-there-a-limit-for-number-of-items-cssearchableitem-in-core-spotlight-cssear
我發(fā)現(xiàn)添加索引還是挺慢的,另外那個批量索引沒弄懂,感覺應該是又有刪除又有新增的話適合批量處理。
2.4 沒用找到重新索引的方法
重復調(diào)用也沒用問題,只要 uniqueIdentifier 匹配會覆蓋老的數(shù)據(jù)
2.5 沒有找到提升排名的方法
好像系統(tǒng)會有一套算法來自動提升排名。
總結(jié):以上就是 IOS 開發(fā) Core Spotlight 實例應用,以及經(jīng)驗分享,希望能幫助開發(fā)IOS的同學。
相關文章
2016 cocoapods的安裝和使用方法以及版本升級遇到的問題
CocoaPods是一個負責管理iOS項目中第三方開源庫的工具,通過CocoaPods,我們可以將第三方的依賴庫統(tǒng)一管理起來,配置和更新只需要通過簡單的幾行命令即可完成,需要的朋友可以參考下2016-09-09
iOS ScrollView實現(xiàn)自動布局的方法(適用Swift 3.0 )
傳說中有一個美工ios開發(fā)者在遇到這個問題的時候特意跑到蘋果總部去咨詢?nèi)绾螌crollview進行自動布局。當然大家不用去了,下面這篇文章就來給大家介紹關于iOS ScrollView實現(xiàn)自動布局的方法,文中的語法同樣也適用Swift 3.0 ,需要的朋友可以參考下。2017-12-12
iOS開發(fā)中實現(xiàn)郵件和短信發(fā)送的簡單示例
這篇文章主要介紹了iOS開發(fā)中實現(xiàn)郵件和短信發(fā)送的簡單示例,編程語言依然是傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-09-09
iOS開發(fā)之路--微博OAuth授權_取得用戶授權的accessToken
本文是IOS開發(fā)之路系列文章的第二篇,講訴的內(nèi)容是如何使用微博OAuth授權,并付源碼,然后詳細講解了取得用戶授權的accessToken,希望對大家有所幫助2014-08-08

