Core Spotlight和深度链接结合使用(下)
2016-08-11 09:52
155 查看
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:@"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中添加
- (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和深度链接结合使用(上)
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:@"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];
}];
}
参数详解
参数 | 解释 |
title | 标题 |
description | 描述 |
publiclyIndexable | 是否公开 |
type | NSUserActivity类型,获取MobileCoreServices框架中的列表 |
thumbnailUrl | 缩略图Url |
keywords | 关键字 |
userInfo | 用户详情 |
expirationDate | 失效日期,设置失效日期会自动删除索引 |
identifier | 标识符 |
callback | 回掉 |
spotlightCallback | sptlight回掉 |
在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和深度链接结合使用(上)
相关文章推荐
- Core Spotlight和深度链接结合使用(上)
- Core Spotlight和深度链接结合使用(下)
- Core Spotlight和深度链接结合使用(上)
- 结合实际使用场景, 谈谈并发场景,或常用框架中间件的深度了解
- png库结合zlib库使用出现的一个链接问题的解决
- png库结合zlib库使用出现的一个链接问题的解决
- 将lex,yacc(flex,bison)与MFC结合起来使用!
- 使用XmlHttp结合ASP实现网页的异步调用
- Together与Visual.Studio.NET的结合使用(一)
- 结合 FileSystemWatcher更好的使用配置文件
- Together与Visual.Studio.NET的结合使用(三)
- XPathDocument 与 XmlDocument 结合使用[yysun]
- 结合 FileSystemWatcher更好的使用配置文件
- Together与Visual.Studio.NET的结合使用(二)
- ctypes: 使用python调用C编写的动态链接库
- 存储过程和触发器要使用链接服务器时要注意的一点
- flash和oa项目 其他应用项目结合使用 的应用
- Together与Visual.Studio.NET的结合使用(转载)
- 使用链接服务器执行远程数据库上的存储过程
- 使用Flex结合Webservice完成域名查询