国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

iOS 9 Core Spotlight搜索實(shí)例代碼

2019-10-21 18:53:40
字體:
供稿:網(wǎng)友

前言

  感覺 Spotlight 這個(gè)功能還是蠻有用的,能提升用戶活躍,增加應(yīng)用內(nèi)容曝光幾率。

正文

  一、實(shí)現(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 里面從服務(wù)器請(qǐng)求完數(shù)據(jù)再加索引的。

    1.2  接收點(diǎn)擊事件

 @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)驗(yàn)

    2.1  CSSearchableItemAttributeSet

    可以不設(shè)置 thumbnailData ,這樣默認(rèn)就是當(dāng)前應(yīng)用的 LOGO;另外注意 thumbnailURL 并不是用來指定網(wǎng)絡(luò)圖片地址的 - - #,所以你要加縮略圖的話需要先把網(wǎng)上的下載到本地再設(shè)置

    2.2  CSSearchableItem

    默認(rèn)失效是一個(gè)月,另外發(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)添加索引還是挺慢的,另外那個(gè)批量索引沒弄懂,感覺應(yīng)該是又有刪除又有新增的話適合批量處理。

    2.4  沒用找到重新索引的方法

    重復(fù)調(diào)用也沒用問題,只要 uniqueIdentifier 匹配會(huì)覆蓋老的數(shù)據(jù)

    2.5  沒有找到提升排名的方法

    好像系統(tǒng)會(huì)有一套算法來自動(dòng)提升排名。

總結(jié):以上就是 IOS 開發(fā) Core Spotlight 實(shí)例應(yīng)用,以及經(jīng)驗(yàn)分享,希望能幫助開發(fā)IOS的同學(xué)


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到IOS開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 衡山县| 绥江县| 太白县| 拉孜县| 虎林市| 买车| 彰化县| 武汉市| 即墨市| 德昌县| 绿春县| 遂昌县| 临夏市| 枣庄市| 平山县| 娱乐| 沾化县| 临澧县| 韶关市| 桑日县| 奈曼旗| 嘉善县| 西宁市| 秭归县| 衡南县| 肃宁县| 新营市| 左贡县| 中阳县| 六枝特区| 永昌县| 康乐县| 龙胜| 繁峙县| 平邑县| 白玉县| 旬阳县| 彩票| 江川县| 蒲江县| 扬州市|