亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS開發之集成iOS9中的CoreSpotlightFramework搜索App的內容

2019-11-14 18:07:53
字體:
來源:轉載
供稿:網友

  Spotlight在iOS9上做了一些新的改進, 也就是開放了一些新的API, 通過Core Spotlight Framework你可以在你的app中集成Spotlight。集成Spotlight的App可以在Spotlight中搜索App的內容,并且通過內容打開相關頁面。因為接到開發任務,老大說讓在App中支持Spotlight, 于是又搞了搞蘋果的官方文檔??梢哉f,集成Spotlight不算復雜,官網上講的也挺明白的,今天博客就通過一個Demo來集成一下Spotlight。

  蘋果官方有關Core Spotlight Framework的鏈接如下:

  https://developer.apple.com/library/PRerelease/ios/documentation/CoreSpotlight/Reference/CoreSpotlight_Framework/index.html

  一.Demo運行效果

  還是通過一個Demo來進行介紹,Demo運行效果如下。我們App中有關于宮崎駿的的內容,然后在Spotlight中搜索宮崎駿,就可以搜索到相關內容,并且可以點擊打開展示相關內容。具體運行效果如下:

  二.集成Core Spotlight Framework

    1.想在App中使用Spotlight,首先得引入Core Spotlight Framework,Targets ->General -> linked Frameworks and Libraries 點擊加號添加CoreSpotlight.framework。如下截圖所示。

 

    2.在相應的視圖控制器中引入<CoreSpotlight/CoreSpotlight.h>頭文件,然后就開始寫代碼使自己的App內容支持Spotlight搜索了。下面是為Demo添加Spotlight的相關代碼。Spotlight搜索出來的東西,每一項就是一個條目即CSSearchableItem的對象,而改對象又關聯一個屬性集合(CSSearchableItemAttributeSet )該集合中存儲了CSSearchableItem對象的相關屬性,如果title(標題), contentDescription(內容簡介),

thumbnailData(圖片)等所需內容。具體請看下方代碼描述和代碼注釋。

    代碼描述:

      (1).首先定義了一個temp數組,用來存儲在Spotlight中搜索的關鍵字,也就是Spotlight可以搜索到的App內容。數組中的內容通過循環遍歷經過一系列的步驟給Spotlight進行關聯。

      (2)在每次遍歷內容數組的過程中,需要創建一個CSSearchableItemAttributeSet(屬性集合),并給屬性集合中的一些屬性賦上值。然后再創建一個CSSearchableItem,創建CSSearchableItem時,把其對應的屬性集合進行關聯。把每次創建好的條目暫存到可變數組中,因為創建好所有的條目后還要和Spotlight的索引(CSSearchableIndex)進行關聯。

      (3)通過單例獲取CSSearchableIndex的對象,并與我們創建好的CSSearchableItem數組進行關聯。具體代碼和步驟如下。

 1 - (void)supportSpotlightSearch { 2     dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); 3     dispatch_async(queue, ^{ 4         @try { 5             NSArray *temp = @[@"宮崎駿-龍貓", @"宮崎駿-千與千尋", @"宮崎駿-天空之城"]; 6              7             //創建SearchableItems的數組 8             NSMutableArray *searchableItems = [[NSMutableArray alloc] initWithCapacity:temp.count]; 9             10             for (int i = 0; i < temp.count; i ++) {11                 12                 //1.創建條目的屬性集合13                 CSSearchableItemAttributeSet * attributeSet = [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(NSString*) kUTTypeImage];14                 15                 //2.給屬性集合添加屬性16                 attributeSet.title = temp[i];17                 attributeSet.contentDescription = [NSString stringWithFormat:@"宮崎駿與%@", temp[i]];18                 attributeSet.thumbnailData = UIImagePNGRepresentation([UIImage imageNamed:[NSString stringWithFormat:@"%d.png", i+1]]);19                 20                 //3.屬性集合與條目進行關聯21                 CSSearchableItem *searchableItem = [[CSSearchableItem alloc] initWithUniqueIdentifier:[NSString stringWithFormat:@"%d", i+1] domainIdentifier:@"ZeluLi.SpotlightSearchDemo" attributeSet:attributeSet];22                 23                 //把該條目進行暫存24                 [searchableItems addObject:searchableItem];25             }26             27             //4.吧條目數組與索引進行關聯28             [[CSSearchableIndex defaultSearchableIndex] indexSearchableItems:searchableItems completionHandler:^(NSError * _Nullable error) {29                 if (!error) {30                     NSLog(@"%s, %@", __FUNCTION__, [error localizedDescription]);31                 }32             }];33         }34         @catch (NSException *exception) {35             NSLog(@"%s, %@", __FUNCTION__, exception);36         }37         @finally {38             39         }40     });41 }

 

    3.處理搜索后條目點擊的事件,該事件的處理要在AppDelegate中下面的委托代理方法中進行處理。下面的idetifier就是屬性集合與條目進行關聯時指定的唯一標示。

 1 - (BOOL)application:(nonnull UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * __nullable))restorationHandler{ 2      3     NSString *idetifier = userActivity.userInfo[@"kCSSearchableItemActivityIdentifier"]; 4      5     UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; 6      7     ViewController *vc = [navigationController viewControllers][0]; 8     [vc.myImage setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@.png",idetifier]]]; 9     10     11     return YES;12 }

 

    DEMO分享地址--github:https://github.com/lizelu/SpotlightSearchDemo


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美孕妇毛茸茸xxxx| 欧美插天视频在线播放| 亚洲国产欧美自拍| 欧美诱惑福利视频| 亚洲精选一区二区| 亚洲国产日韩欧美在线99| 欧美精品在线免费| 欧美日韩激情视频| 国产情人节一区| 欧美电影免费观看| 欧美性猛交xxxx免费看漫画| 亚洲黄一区二区| 欧美视频在线观看 亚洲欧| 精品国产乱码久久久久久虫虫漫画| 亚洲欧美日韩国产精品| 国产一区二区三区视频在线观看| 这里只有精品视频| 中文字幕自拍vr一区二区三区| 精品国产一区二区三区在线观看| 色午夜这里只有精品| 91免费的视频在线播放| 亚洲国产精品久久久久秋霞不卡| 欧美高清视频在线观看| 精品国产乱码久久久久久婷婷| 国产激情综合五月久久| 欧美激情视频一区| 91精品国产高清自在线| 欧美午夜片欧美片在线观看| 色悠久久久久综合先锋影音下载| 欧美亚洲国产成人精品| 91国自产精品中文字幕亚洲| 91丝袜美腿美女视频网站| 久久亚洲私人国产精品va| 亚洲精品成人久久久| 欧美日韩中国免费专区在线看| 日韩精品一二三四区| 亚洲国产成人在线播放| 国产69精品久久久| 国产精品视频区1| 国产mv免费观看入口亚洲| 国产精品88a∨| 国产欧美日韩丝袜精品一区| 国产欧美精品在线播放| 欧美激情精品久久久久久蜜臀| 色视频www在线播放国产成人| 欧美性xxxx18| 欧美性高潮在线| 欧美高清在线视频观看不卡| 久久影视电视剧凤归四时歌| 98精品国产高清在线xxxx天堂| 亚洲国产另类久久精品| 亚洲无av在线中文字幕| 高清视频欧美一级| 美女视频黄免费的亚洲男人天堂| 在线播放国产一区二区三区| 中文字幕亚洲精品| 成人亲热视频网站| 青草青草久热精品视频在线观看| 国产精品露脸av在线| 亚洲精品美女视频| 在线日韩av观看| 国产婷婷97碰碰久久人人蜜臀| 国外日韩电影在线观看| 国产成人精品免高潮费视频| 国产精品爽爽爽爽爽爽在线观看| 91亚洲精品一区二区| 国产日韩中文在线| 久久躁日日躁aaaaxxxx| 91免费视频国产| 亚洲天堂影视av| 久久91精品国产91久久跳| 日韩av色综合| 日韩美女免费观看| 欧美精品免费看| 庆余年2免费日韩剧观看大牛| 亚洲自拍偷拍在线| 国产精品美女www爽爽爽视频| 色综合亚洲精品激情狠狠| 欧美日韩一二三四五区| 久久亚洲私人国产精品va| 精品久久久久久中文字幕一区奶水| 亚洲国产精品字幕| 亚洲欧美国产精品va在线观看| 91精品国产高清久久久久久91| 国产精品三级美女白浆呻吟| 成人h片在线播放免费网站| 日韩一二三在线视频播| 69av成年福利视频| 91精品成人久久| 91成人天堂久久成人| 亚洲免费视频一区二区| 久久免费视频观看| 午夜精品久久久久久久久久久久| 欧美日韩高清在线观看| 韩国国内大量揄拍精品视频| 日韩在线视频线视频免费网站| 中文字幕亚洲欧美在线| 国产欧美精品xxxx另类| 国产精品福利片| 日本精品一区二区三区在线播放视频| 国产女精品视频网站免费| 国产精品18久久久久久首页狼| 国内精品在线一区| 欧美日韩免费在线观看| 欧美极品少妇xxxxⅹ免费视频| 欧美成人午夜激情视频| 国产精品欧美风情| 高跟丝袜欧美一区| 久久久久久久一| 亚洲自拍另类欧美丝袜| 欧美一级电影久久| 久久精品国产99国产精品澳门| 国产美女扒开尿口久久久| 久久影视电视剧凤归四时歌| 亚洲欧美在线磁力| 2019最新中文字幕| 97色在线视频| 欧美一级视频一区二区| 欧美高清视频免费观看| 国产不卡一区二区在线播放| 国产欧美欧洲在线观看| 97色在线播放视频| 欧美猛交免费看| 久久成人精品视频| 欧美肥臀大乳一区二区免费视频| 欧美在线亚洲在线| 亚洲色图狂野欧美| 91天堂在线观看| 欧美激情18p| 欧美夫妻性视频| 久久成年人视频| 国产玖玖精品视频| 国产精品欧美风情| 欧美大荫蒂xxx| 国产精品av免费在线观看| 97香蕉超级碰碰久久免费软件| 亚洲偷熟乱区亚洲香蕉av| 亚洲国产精品中文| 97在线视频免费播放| 亚洲va电影大全| 日韩高清有码在线| 久久久免费在线观看| 视频在线观看一区二区| 亚洲午夜av久久乱码| 国产一区二中文字幕在线看| 久久噜噜噜精品国产亚洲综合| 亚洲精品大尺度| 亚洲欧洲国产一区| 最近2019年手机中文字幕| 国产成人一区三区| 亚洲深夜福利视频| 欧美黑人性生活视频| 亚洲欧美精品伊人久久| 亚洲天堂色网站| 亚洲欧美三级在线| 国产日韩欧美夫妻视频在线观看| 亚洲精品成人久久电影| 精品伊人久久97| 粉嫩av一区二区三区免费野| 一本大道香蕉久在线播放29| 欧美成人精品在线视频| 亚洲人在线观看| 亚洲日本aⅴ片在线观看香蕉| 精品视频在线播放色网色视频|