媒介
感到 Spotlight 這個功效照樣蠻有效的,能晉升用戶活潑,增長運用內容暴光概率。
注釋
1、完成(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)") } })
必定要留意把下面代碼加到子線程外面履行,略慢。可以在 AppDelegate 外面從辦事器要求完數據再加索引的。
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 { // 頁面跳轉 } } } return true }
2、額定經歷
2.1 CSSearchableItemAttributeSet
可以不設置 thumbnailData ,如許默許就是以後運用的 LOGO;別的留意 thumbnailURL 其實不是用來指定收集圖片地址的 - - #,所以你要加縮略圖的話須要先把網上的下載到當地再設置
2.2 CSSearchableItem
默許掉效是一個月,別的發明沒法攜帶更多半據(好比經由過程 CSSearchableItemAttributeSet 的 setValue ,在 userActivity 那裡都吸收不到)
2.3 沒有找到索引條數的限制
http://stackoverflow.com/questions/35284223/is-there-a-limit-for-number-of-items-cssearchableitem-in-core-spotlight-cssear
我發明添加索引照樣挺慢的,別的誰人批量索引沒弄懂,感到應當是又有刪除又有新增的話合適批量處置。
2.4 沒用找到從新索引的辦法
反復挪用也沒用成績,只需 uniqueIdentifier 婚配會籠罩老的數據
2.5 沒有找到晉升排名的辦法
似乎體系會有一套算法來主動晉升排名。
總結:以上就是 IOS 開辟 Core Spotlight 實例運用,和經歷分享,願望能贊助開辟IOS的同窗。
【iOS 9 Core Spotlight搜刮實例代碼】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!