iOS開發(fā) CoreSpotlight介紹和使用

1. 功能:系統(tǒng)搜索可以搜索到app內(nèi)的東西

對象名 描述 類型
CSSearchableIndex 用來插入條目的對象 對象
CSSearchableItem 要插入的對象 對象
CSSearchableItemAttributeSet 要插入的對象的屬性描述 對象
identifier 插入的標(biāo)識符,這個在處理的時候可以拿到,然后根據(jù)它來處理點(diǎn)擊事件 字符串

2. 引入頭文件

#import <CoreSpotlight/CoreSpotlight.h>

3. 創(chuàng)建插入的條目###

    CSSearchableItem *item = [[CSSearchableItem alloc] initWithUniqueIdentifier:identifier domainIdentifier:@"bundleID" attributeSet:attributeSet];

4. 進(jìn)行插入和刪除操作

插入 多個.一個的話數(shù)組里就寫一個
    [[CSSearchableIndex defaultSearchableIndex] indexSearchableItems:@[item]
                                                   completionHandler:^(NSError * __nullable error) {
                                                       if (error) {
                                                           NSLog(@"%@",error.localizedDescription);
                                                       }
                                                   }];

刪除一個或者多個,根據(jù)identity來刪除

//存的是id
NSArray * itemsIdentiferArray = @[];
    for (NSString * identifty in itemsIdentiferArray) {
        
        if ([identifty isKindOfClass:[NSString class]]) {
            [[CSSearchableIndex defaultSearchableIndex] deleteSearchableItemsWithIdentifiers:@[identifty] completionHandler:^(NSError * __nullable error) {
                if (!error)
                    NSLog(@"%@",error.localizedDescription);
            }];
        }
    }

5. 點(diǎn)擊事件的處理

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
        NSString *idetifier = userActivity.userInfo[@"kCSSearchableItemActivityIdentifier"];

//拿到id做頁面跳轉(zhuǎn)
}

6. 規(guī)律

  • 相同id的條目會覆蓋,不會有多個
  • 圖片最好用本地的圖片,比如App logo
  • 圖片傳的是data,如果是網(wǎng)絡(luò)的,可以使用緩存,或者異步下載
  • 建議封裝一個單例,然后把id都存在一個數(shù)組里,并進(jìn)行數(shù)據(jù)持久化

由于這個單例的耦合性比較大,對接了項(xiàng)目的數(shù)據(jù)模型,就不放demo了,放了也不好用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,040評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,562評論 19 139
  • 1:打印的相關(guān) 解決方案: 解決方法根第一個一樣 3.升級Xcode8之后,會打印一些煩人的Log信息,隱藏不需要...
    edison0428閱讀 3,625評論 0 6
  • 獲取客戶端ip,mac 百度獲取mac的方法都只適用于ie,而我們的客戶,不僅僅只用ie
    蔣跑跑轉(zhuǎn)圈閱讀 191評論 0 0
  • 暗夜如美,一曲月光羞澀落寞 你癡醉舞,紅裙舞碎一落星辰 你笑,冷傲?xí)崦恋呐?輕佻唇紅,一抹悠然 暗夜如冷,音樂閃爍...
    劉海峰閱讀 373評論 0 0

友情鏈接更多精彩內(nèi)容