欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS9開放的新API--Spotlight使用指南

 更新時(shí)間:2015年11月14日 17:01:19   投稿:hebedich  
作為蘋果iOS9的重要特性之一,Spotlight搜索如今重新回到主界面最左側(cè)(同樣支持主界面下滑呼出),通過(guò)API的支持,還帶來(lái)了全新的Universal Search通用搜索功能,除了網(wǎng)絡(luò)以及系統(tǒng)本身內(nèi)容之外,還能直接搜索第三方應(yīng)用內(nèi)的相關(guān)內(nèi)容。下面我們就來(lái)詳細(xì)研究下Spotlight

1.Spotloight是什么?

  Spotlight在iOS9上做了一些新的改進(jìn), 也就是開放了一些新的API, 通過(guò)Core Spotlight Framework你可以在你的app中集成Spotlight。集成Spotlight的App可以在Spotlight中搜索App的內(nèi)容,并且通過(guò)內(nèi)容打開相關(guān)頁(yè)面。

  Demo演示

  

2.如何集成Spotlight

  a.添加所需要的框架 

復(fù)制代碼 代碼如下:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 90000
#import <CoreSpotlight/CoreSpotlight.h>
#import <MobileCoreServices/MobileCoreServices.h>
#endif

  注,很多APP都是支持iOS9以下的,因此加入#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 90000,可以解決iOS9以下設(shè)備運(yùn)行崩潰的問(wèn)題

  b.創(chuàng)建CSSearchableItemAttributeSet 對(duì)象

復(fù)制代碼 代碼如下:

CSSearchableItemAttributeSet *attributeSet = [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(NSString *)kUTTypeImage];
   
    attributeSet.title = spotlightTitle;                // 標(biāo)題
    attributeSet.keywords = keywords;                   // 關(guān)鍵字,NSArray格式
    attributeSet.contentDescription = spotlightDesc;    // 描述
    attributeSet.thumbnailData = photo;                 // 圖標(biāo), NSData格式

  // 把圖片轉(zhuǎn)換成NSData的方法
  UIImagePNGRepresentation([UIImage imageNamed:@"xxx.png"]

  c.創(chuàng)建可檢索條目CSSearchableItem

復(fù)制代碼 代碼如下:

// spotlightInfo 可以作為一些數(shù)據(jù)傳遞給接受的地方
// domainId      id,通過(guò)這個(gè)id來(lái)判斷是哪個(gè)spotlight
CSSearchableItem *item = [[CSSearchableItem alloc] initWithUniqueIdentifier:spotlightInfo domainIdentifier:domainId attributeSet:attributeSet];

  d.添加檢索入口

復(fù)制代碼 代碼如下:

[[CSSearchableIndex defaultSearchableIndex] indexSearchableItems:@[item] completionHandler:^(NSError * error) {
     if (error) {
        NSLog(@"indexSearchableItems Error:%@",error.localizedDescription);
     }
}];

  ========完整代碼========

復(fù)制代碼 代碼如下:

- (void)insertSearchableItem:(NSData *)photo spotlightTitle:(NSString *)spotlightTitle description:(NSString *)spotlightDesc keywords:(NSArray *)keywords spotlightInfo:(NSString *)spotlightInfo domainId:(NSString *)domainId {
   
    CSSearchableItemAttributeSet *attributeSet = [[CSSearchableItemAttributeSet alloc] initWithItemContentType:(NSString *)kUTTypeImage];
   
    attributeSet.title = spotlightTitle;                // 標(biāo)題
    attributeSet.keywords = keywords;                   // 關(guān)鍵字,NSArray格式
    attributeSet.contentDescription = spotlightDesc;    // 描述
    attributeSet.thumbnailData = photo;                 // 圖標(biāo), NSData格式
   
    // spotlightInfo 可以作為一些數(shù)據(jù)傳遞給接受的地方
    // domainId      id,通過(guò)這個(gè)id來(lái)判斷是哪個(gè)spotlight
    CSSearchableItem *item = [[CSSearchableItem alloc] initWithUniqueIdentifier:spotlightInfo domainIdentifier:domainId attributeSet:attributeSet];
   
    [[CSSearchableIndex defaultSearchableIndex] indexSearchableItems:@[item] completionHandler:^(NSError * error) {
        if (error) {
            NSLog(@"indexSearchableItems Error:%@",error.localizedDescription);
          
        }
    }];
}

  ========加載本地圖片的使用方法========

復(fù)制代碼 代碼如下:
[self insertSearchableItem:UIImagePNGRepresentation([UIImage imageNamed:@"xxx.png"]) spotlightTitle:@"等風(fēng)來(lái)" description:@"等風(fēng)來(lái)描述" keywords:@[@"鮑鯨鯨",@"大麗花"] spotlightInfo:@"傳遞過(guò)去的值" domainId:@"com.wb.spotlight"];

  ========加載網(wǎng)絡(luò)圖片的使用方法========

復(fù)制代碼 代碼如下:

  ========刪除所有spotlight的方法========

復(fù)制代碼 代碼如下:

[[CSSearchableIndex defaultSearchableIndex] deleteAllSearchableItemsWithCompletionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"%@", error.localizedDescription);
}
}];

  ========刪除指定的spotlight的方法========

復(fù)制代碼 代碼如下:

[[CSSearchableIndex defaultSearchableIndex] deleteSearchableItemsWithDomainIdentifiers:@"domainId" completionHandler:^(NSError * _Nullable error) {
if (error) {
NSLog(@"%@", error.localizedDescription);
}
}];

  ========點(diǎn)擊spotlight后的響應(yīng)方法========

復(fù)制代碼 代碼如下:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
if ([[userActivity activityType] isEqualToString:CSSearchableItemActionType]) {
NSString *uniqueIdentifier = [userActivity.userInfo objectForKey:CSSearchableItemActivityIdentifier];
// 接受事先定義好的數(shù)值,如果是多個(gè)參數(shù)可以使用把json轉(zhuǎn)成string傳遞過(guò)來(lái),接受后把string在轉(zhuǎn)換為json
NSLog(@"傳遞過(guò)來(lái)的值%@", uniqueIdentifier);
}
return YES;
}

  備注:

復(fù)制代碼 代碼如下:

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 90000
  // 相關(guān)spotlight的方法等
#endif

// Spotlight支持iOS9以上設(shè)備運(yùn)行,對(duì)與低版本的設(shè)備需加入這個(gè)防止崩潰問(wèn)題

相關(guān)文章

  • 詳解IOS中文件路徑判斷是文件還是文件夾

    詳解IOS中文件路徑判斷是文件還是文件夾

    這篇文章主要介紹了詳解IOS中文件路徑判斷是文件還是文件夾的相關(guān)資料,這里提供兩種實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-09-09
  • iOS App開發(fā)中的UIPageControl分頁(yè)控件使用小結(jié)

    iOS App開發(fā)中的UIPageControl分頁(yè)控件使用小結(jié)

    UIPageControl分頁(yè)控件的例子簡(jiǎn)單來(lái)說(shuō)即是我們平時(shí)翻動(dòng)多個(gè)桌面頁(yè)時(shí)及底部帶有的圓點(diǎn)頁(yè)碼標(biāo)注,這里我們來(lái)看一下iOS App開發(fā)中的UIPageControl分頁(yè)控件使用小結(jié),需要的朋友可以參考下
    2016-06-06
  • iOS開發(fā)中使用cocos2d添加觸摸事件的方法

    iOS開發(fā)中使用cocos2d添加觸摸事件的方法

    這篇文章主要介紹了iOS開發(fā)中使用cocos2d添加觸摸事件的方法,cocos2d是制作iOS游戲的利器,需要的朋友可以參考下
    2015-10-10
  • IOS開發(fā)之路--C語(yǔ)言基礎(chǔ)知識(shí)

    IOS開發(fā)之路--C語(yǔ)言基礎(chǔ)知識(shí)

    當(dāng)前移動(dòng)開發(fā)的趨勢(shì)已經(jīng)勢(shì)不可擋,這個(gè)系列希望淺談一下個(gè)人對(duì)IOS開發(fā)的一些見解,今天我們從最基礎(chǔ)的C語(yǔ)言開始,C語(yǔ)言部分我將分成幾個(gè)章節(jié)去說(shuō),今天我們簡(jiǎn)單看一下C的一些基礎(chǔ)知識(shí),更高級(jí)的內(nèi)容我將放到后面的文章中。
    2014-08-08
  • iOS中的音頻服務(wù)和音頻AVAudioPlayer音頻播放器使用指南

    iOS中的音頻服務(wù)和音頻AVAudioPlayer音頻播放器使用指南

    這里我們要介紹的是AVAudio ToolBox框架中的AudioServicesPlaySystemSound函數(shù)創(chuàng)建的服務(wù),特別適合用來(lái)制作鈴聲,下面就簡(jiǎn)單整理一下iOS中的音頻服務(wù)和音頻AVAudioPlayer音頻播放器使用指南:
    2016-06-06
  • 比較IOS開發(fā)中常用視圖的四種切換方式

    比較IOS開發(fā)中常用視圖的四種切換方式

    這篇文章給大家介紹了在IOS開發(fā)中常用視圖的四種切換方式以及這四種方式的優(yōu)缺點(diǎn),這四種方式包括:push,pop、modal、切換窗口的根控制器和添加子視圖,有需要的可以參考借鑒。
    2016-08-08
  • iOS 自定義返回按鈕保留系統(tǒng)滑動(dòng)返回功能

    iOS 自定義返回按鈕保留系統(tǒng)滑動(dòng)返回功能

    這篇文章主要介紹了iOS 自定義返回按鈕,保留系統(tǒng)滑動(dòng)返回功能,實(shí)現(xiàn)方法非常簡(jiǎn)單,具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-01-01
  • Flutter?Module添加到iOS項(xiàng)目示例詳解

    Flutter?Module添加到iOS項(xiàng)目示例詳解

    這篇文章主要為大家介紹了Flutter?Module添加到iOS項(xiàng)目示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • iOS開發(fā)frame和bounds使用示例詳解

    iOS開發(fā)frame和bounds使用示例詳解

    這篇文章主要為大家介紹了iOS開發(fā)frame和bounds使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • iOS開發(fā)教程之識(shí)別圖片中二維碼功能的實(shí)現(xiàn)

    iOS開發(fā)教程之識(shí)別圖片中二維碼功能的實(shí)現(xiàn)

    長(zhǎng)按識(shí)別二維碼這個(gè)功能相信對(duì)大家來(lái)說(shuō)都不陌生,最近工作中就遇到了這個(gè)需求,所以下面這篇文章主要給大家介紹了關(guān)于利用iOS識(shí)別圖片中二維碼的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-07-07

最新評(píng)論