Core Spotlight和深度連接結合使用(上)中咱們已經說了Spotlight的建立和使用了,這篇文章着重說怎麼建立深度連接,深度連接(Universal links)怎麼和Spotlight結合使用,在這裏就不過多贅述什麼是深度鏈接了,在文末提供了幾篇文章供你們參考,以及國內成熟的深度連接(Universal links)技術服務商LinkedME。微信
能夠與iOS9 search功能配合使用的三種技術
一、Universal links.
二、Smart App Banners.
三、Handoff.app
爲何咱們要使用Spotlight和深度連接?url
上篇中提到WWDC公佈關於用戶習慣的數據,用戶有 86% 的時間花在 App中,而現在App同質化現象這麼嚴重,假設在手機上裝了兩個提供相同的內容App,除了推送通知之外(咱們都知道通知過分的使用會致使用戶反感直接關閉通知),咱們怎麼讓用戶打開個人App而不是打開別的App,若是用戶打開了咱們的App咱們怎麼知道他是經過什麼途徑打開App的,他感興趣的內容是什麼?怎麼獲取用戶的這些行爲數據和興趣愛好?spa
傳統的統計分析SDK只能統計App的啓動次數,頁面的打開次數,頁面停留的時間,可是沒法統計用戶是經過什麼途徑(如QQ,微信,微博,短信,Spotlight..)打開App,甚至是打開App的某個頁面。rest
使用深度連接LinkedME,能夠知足上面提出的全部問題,產品同時提供了更詳細的數據和渠道的統計和分析,不單單是Spotlight的數據,整個互聯網的其餘全部數據來源都能統計。code
下面的Demo咱們就使用LinkedME的SDK來開發。orm
MobileCoreServices.framework
CoreSpotlight.framework
(不須要判斷iOS 9 SDK內部已判斷)索引
import <LinkedME_iOS/LinkedME.h>
import <LinkedME_iOS/LinkedME.h> -(IBAction)creatSearchableItem{ NSSet *set5 = [NSSet setWithObjects:@"linkedME", nil]; // NSDictionary *dict = @{@"test":@"test"}; [[LinkedME getInstance] createDiscoverableContentWithTitle:@"LinkedME 國內第一家企業級深度連接" description:@"讓APP再也不是信息孤島!" thumbnailUrl:[NSURL URLWithString:@"http://7xq8b0.com1.z0.glb.clouddn.com/logo.png"] linkParams:dict type:@"" publiclyIndexable:NO keywords:set5 expirationDate:nil spotlightIdentifier:@"bbcc" spotlightCallback:^(NSString *url, NSString *spotlightIdentifier, NSError *error) { [self performSelectorOnMainThread:@selector(showAlert:) withObject:@"索引建立成功" waitUntilDone:NO]; }]; }
經過搜索結果跳轉到相應頁面
在Appdelegate引入頭文件圖片
import <LinkedME_iOS/LinkedME.h>
//Universal Links 通用連接實現深度連接技術 - (BOOL)application:(UIApplication*)application continueUserActivity: (NSUserActivity*)userActivity restorationHandler:(void (^) (NSArray*))restorationHandler{ return [[LinkedME getInstance] continueUserActivity:userActivity]; }
在didFinishLaunchingWithOptions中添加ip
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { LinkedME* linkedme = [LinkedME getInstance]; //獲取跳轉參數 [linkedme initSessionWithLaunchOptions:launchOptions automaticallyDisplayDeepLinkController:NO deepLinkHandler:^(NSDictionary* params, NSError* error) { if (!error) { @try { } @catch (NSException *exception) { } @finally { } } else { NSLog(@"LinkedME failed init: %@", error); } }]; return YES; }
以上就是關於如何建立深度連接以及Spotlight如何與深度連接結合使用,感興趣的朋友能夠關注咱們上一期的文章:Core Spotlight和深度連接結合使用(上)