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:@"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和深度链接结合使用(上)







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值