Core Spotlight和深度鏈接結合使用(下)

Core Spotlight和深度鏈接結合使用(上)中我們已經說了Spotlight的創建和使用了,這篇文章著重說怎麼創建深度鏈接,深度鏈接(Universal links)怎麼和Spotlight結合使用,在這裡就不過多贅述什麼是深度連接了,在文末提供了幾篇文章供大家參考,以及國內成熟的深度鏈接(Universal links)技術服務商LinkedME。

可以與iOS9 search功能配合使用的三種技術

1、Universal links.

2、Smart App Banners.

3、Handoff.

為什麼我們要使用Spotlight和深度鏈接?

上篇中提到WWDC公布關於用戶習慣的數據,用戶有 86% 的時間花在 App中,而如今App同質化現象這麼嚴重,假設在手機上裝了兩個提供相同的內容App,除了推送通知以外(我們都知道通知過度的使用會導致用戶反感直接關閉通知),我們怎麼讓用戶打開我的App而不是打開別的App,如果用戶打開了我們的App我們怎麼知道他是通過什麼途徑打開App的,他感興趣的內容是什麼?怎麼獲取用戶的這些行為數據和興趣愛好?

傳統的統計分析SDK只能統計App的啟動次數,頁面的打開次數,頁面停留的時間,但是無法統計用戶是通過什麼途徑(如QQ,微信,微博,簡訊,Spotlight..)打開App,甚至是打開App的某個頁面。

使用深度鏈接LinkedME,可以滿足上面提出的所有問題,產品同時提供了更詳細的數據和渠道的統計和分析,不僅僅是Spotlight的數據,整個互聯網的其他所有數據來源都能統計。

下面的Demo我們就使用LinkedME的SDK來開發。

  • 第一步:導入Framework

MobileCoreServices.framework

CoreSpotlight.framework

(不需要判斷iOS 9 SDK內部已判斷)

  • 第二步:導入頭文件

#import <LinkedME_iOS/LinkedME.h>

  • 第三步:創建Spotlight索引

#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:@"7xq8b0.com1.z0.glb.clouddn.com"] 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中添加

- (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和深度鏈接結合使用(上)

weixin.qq.com/r/fkQZAUz (二維碼自動識別)


推薦閱讀:

Windows Store 年度最佳應用特輯評選
追劇必備!看了那麼多年電視連續劇,但你真的會追劇嗎?
一款應用帶你重溫古典詩詞的魅力
太極助手是什麼來歷?
嘀嘀打車的使用體驗怎麼樣?與搖搖招車相比哪個更好用?

TAG:移动应用 | iOS开发 |