成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS 9:快速讓你的APP支持spotlight搜索

移動開發
iOS9中支持為app中的內容做索引以支持spotlight搜索,感覺是個很有新意的功能。需要提到的是這些索引是存在本地設備中的,不會同步到icloud中,更換了設備就沒有了。

[[151508]]

iOS9中支持為app中的內容做索引以支持spotlight搜索,感覺是個很有新意的功能。需要提到的是這些索引是存在本地設備中的,不會同步到icloud中,更換了設備就沒有了。

效果就是這樣:

blob.png

創建支持搜索的內容

支持搜索的內容的類是CSSearchableItem。

可以展示的屬性有標題,一段描述文字,還有縮略圖。這里建議給每個item設置一個過期時間(expirationDate)。

blob.png

首先創建表示一個配置展示內容的對象CSSearchableItemAttributeSet


  1. let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeData as String) 
  2. // Add metadata that supplies details about the item. 
  3. attributeSet.title = "July Report.Numbers" 
  4. attributeSet.contentDescription = "iWork Numbers Document" 
  5. attributeSet.thumbnailData = DocumentImage.jpg 

attributeSet也支持電話號碼,和地理坐標。右邊會有對應的動作,如果是支持導航會有一個箭頭。(因為我的app里不需要這功能,我自己沒有試過)


  1. attributeSet.phoneNumbers; 
  2. attributeSet.latitude; 
  3. attributeSet.longitude; 

blob.png

創建CSSearchableItem

uniqueIdentifier相當于這條數據的id。domainIdentifier則表示相關的域。蘋果還提供了一組api對這些索引進行修改刪除操作,domainIdentifier可以當做參數,比如可以講一個域下的所有索引刪除。


  1. let item = CSSearchableItem(uniqueIdentifier: "1", domainIdentifier: "file-1", attributeSet: attributeSet) 

將CSSearchableItem添加至系統


  1. CSSearchableIndex.defaultSearchableIndex().indexSearchableItems([item]) { error in 
  2.   if error != nil { 
  3.      print(error?.localizedDescription) 
  4.   } 
  5.      else {  
  6.          print("Item indexed."
  7.   } 

tips

大部分的app可能還要兼容iOS8,這里介紹下swift下的判斷方法。

如果是在一個方法里要使用iOS9的api,使用下面來判斷(xcode7也會提醒你)。


  1. if #available(iOS 9.0, *) { 

如果是自己寫的一整個方法想表示只在iOS9可用,用下面的關鍵字加在方法頭表示


  1. @available(iOS 9.0, *) 

直接貼我的項目代碼了。

blob.png

blob.png

用戶搜索后選中打開app的處理

在app delegate里添加這個回調就好了。


  1. func application(UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: [AnyObject]? -> Void) -> Bool { 

在OC下的方法是這個


  1. -(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler{ 

通過這個可以取到創建CSSearchableItem時設置的identifier


  1. NSString* identifier=userActivity.userInfo[CSSearchableItemActivityIdentifier]; 

接著就可以用這個identifier取出對應的數據,進行處理了。

參考鏈接:

責任編輯:倪明 來源: CocoaChina
相關推薦

2015-08-20 09:00:23

ios9api

2015-07-17 11:12:43

IOS搜索API

2013-04-16 16:01:51

APP支持iPhoneiOS開發

2013-07-12 13:24:19

App誘惑

2020-08-26 19:24:51

iOS 14App Attest防護

2015-08-20 09:19:46

ios9uistackview

2013-07-05 13:48:47

App

2018-11-19 15:06:23

Python算法

2018-04-24 10:05:13

Docker工具交付

2012-01-05 09:19:25

iOSApp應用

2015-09-22 10:59:45

iOS 9功能

2013-09-18 15:56:18

Testin王軍App

2013-07-30 15:24:53

App應用體驗

2012-07-09 11:20:59

2016-03-02 17:55:03

app用戶加載

2020-11-20 10:40:20

PyTorch神經網絡代碼

2013-02-01 17:36:35

App開發者用戶體驗

2025-03-28 03:20:00

MySQL數據庫搜索

2013-11-25 11:25:05

產品設計App設計產品經理

2015-09-16 09:02:10

IOS9新功能搜索業務
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲第一网站 | av在线播放网址 | 国产在线一区观看 | 男女精品久久 | 黑人一级黄色大片 | 亚洲精品久久国产高清情趣图文 | 网黄在线| 在线看av的网址 | 亚洲免费视频在线观看 | 亚洲高清在线 | 日本小电影在线 | 亚洲国产一区二区三区在线观看 | 国产一区二区三区在线 | 中文字幕高清视频 | 成人一区二区电影 | 国产成人精品一区二区三区在线 | 国产一区二区三区视频在线观看 | 色.com| 91在线观看视频 | 九九热最新视频 | 密色视频 | 91九色在线观看 | 狠狠干天天干 | 九九九视频在线 | 国产一区二区精品在线观看 | 午夜在线精品偷拍 | 亚洲视频一区在线观看 | 国内精品99 | 国产九九精品视频 | 一区二区播放 | 国产精品.xx视频.xxtv | 色啪网 | 性网站免费 | jlzzjlzz欧美大全 | 久久久免费| 久久精品免费观看 | 免费小视频在线观看 | 日韩欧美网 | 国产精品视频一二三区 | 成人精品免费 | 精品综合 |