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