iOS DeepLinkKit使用简介

Update: 2017.04.08 增加了使用iOS DeepLinkKit使用Universal Links的部分

---------------------------------------------------------

废话不多说,先说做这个的需求:

1.应用中有些社交元素的分享会分享一个链接到facebook, twitter, google+这类的社交媒体上

2.当用户点击某个链接的时候先跳转到自己的页面,然后再传递参数到iOS应用上打开指定的分享数据


思路:iOS提供了Scheme这个东西可以从浏览器或者其他应用跳转到自己的应用,查询scheme相关的内容。在大概了解了Scheme机制之后在github上找到DeepLinkKit这个第三方组件。


使用如下:

1.在plist中添加一个URL Type, 比如URL Schemes叫com.test.test

2.在AppDelegate 中添加如下代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    router = [[DPLDeepLinkRouter alloc] init];
    
    //浏览器调用url: "com.test.test://L/aa/123/456", 这样bb取到123, cc取到456
    router[@"/aa/:bb/:cc"] = ^(DPLDeepLink *link) {
        NSLog(@"----------DeepLink: %@, %@----------", link.routeParameters[@"bb"], link.routeParameters[@"cc"]);
    };
}

3.在AppDelegate 中添加如下代码:
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    BOOL success = [router handleURL:url withCompletion:nil];
    return success;
}

4.将应用退到后台,在浏览器中输入com.test.test://L/aa/123/456,这里router的block会生效。


解释一下,这里L是DeepLinkKit这个组件需要的,但内容可随便输入,总之在host之前必须要有一个字段。aa是DeepLinkKit中提到的host,这个要跟router注册时的字符一样。其他不必解释了。

用下来,DeepLinkKit还是比较简单的,但文档写得比较不好,我看了好久代码,其中研究他的demo帮助最大。

希望对需要做深度链接的同学有帮助,有任何问题,请在这里留言,我们一起交流。谢谢!


-------------------------

Update: 2017.04.08

从iOS 9.2开始加入了Universal Links机制来进一步加强应用间跳转相关的功能,关于这方面的内容推荐阅读一下Deferred Deep Linking in iOS ,这篇文章对Deep Linking的两种方式有很详细的讲解,你不可错过,我就不搬运过来了。

使用iOS DeepLinkKit要支持Universal Links,首先你要在你官网的根目录下放一个JSON文件,前面提到的网页里面都有详细的讲述。

在做好这些前期准备后,你需要将以下代码加入到你的项目里面:

- (BOOL)application:(UIApplication *)application
        continueUserActivity:(NSUserActivity *)userActivity
          restorationHandler:(void (^)(NSArray *))restorationHandler {

    return [self.router handleUserActivity:userActivity withCompletion:NULL];
}


另外,因为我有比较多的类似于收集效果之类的需求,很早之前就开始使用Branch了,这个用起来也不错,不过官方的文档也全是英文的,目前还没有比较好的中文使用简介,可能对一些对自己的英文能力不够自信的朋友会造成压力,有时间我整理一份中文的使用简介出来吧。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值