成人免费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開發

2015-08-20 09:19:46

ios9uistackview

2020-08-26 19:24:51

iOS 14App Attest防護

2013-07-12 13:24:19

App誘惑

2018-11-19 15:06:23

Python算法

2013-07-05 13:48:47

App

2015-09-22 10:59:45

iOS 9功能

2018-04-24 10:05:13

Docker工具交付

2012-01-05 09:19:25

iOSApp應用

2013-09-18 15:56:18

Testin王軍App

2013-07-30 15:24:53

App應用體驗

2020-11-20 10:40:20

PyTorch神經網絡代碼

2013-02-01 17:36:35

App開發者用戶體驗

2013-11-25 11:25:05

產品設計App設計產品經理

2025-03-28 03:20:00

MySQL數據庫搜索

2012-07-09 11:20:59

2016-03-02 17:55:03

app用戶加載

2015-09-16 09:02:10

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

51CTO技術棧公眾號

主站蜘蛛池模板: 97国产一区二区 | 午夜小视频免费观看 | 欧美中文| 97精品超碰一区二区三区 | 高清一区二区三区 | 丁香一区二区 | 免费毛片网 | 一区二区在线 | 羞羞视频网站免费观看 | 成人免费看电影 | 黄色网址在线播放 | 亚洲精品国产成人 | 欧洲亚洲一区 | 成人在线观看免费视频 | 人人做人人澡人人爽欧美 | 成人午夜影院 | 亚洲视频第一页 | 91影库| 国产一区二区精品在线观看 | 高清成人av | 人人澡人人射 | 成人免费在线电影 | 在线一区视频 | 国产福利在线视频 | 国产1区2区在线观看 | 午夜黄色影院 | 亚洲网站在线观看 | 日本天天操| 成年无码av片在线 | 欧美日韩a | 欧美成人h版在线观看 | 久久久久综合 | 亚洲成人精品视频 | 成人二区三区 | 在线观看黄免费 | 精品国产免费人成在线观看 | 久久久久国产精品 | 成人精品网 | 婷婷综合在线 | 可以在线观看av的网站 | 亚欧洲精品在线视频免费观看 |