转载请注明来源 http://www.cnblogs.com/hucn/p/5917924.html html
活跃人数是衡量app一项关键指标, dau, mau, 有了流量才能给业务发展提供营养和空间.android
app的流量一方面来自自身的留存, 一方面来自外部的供给, 而deeplink是外部引流的重要手段.ios
当有人分享一个商品给你, 发送一个连接到你的手机上, 你点击连接后直接跳转到app内对应的页面.浏览器
当你从浏览器中使用百度搜索, 点击一个搜索结果, 直接跳转到你的app的指定页面.安全
这些都是deeplink的使用场景, deeplink是从拦截外部请求到app内并定位到具体页面的技术.app
上面提到了流量的重要性, 而deeplink可以将外部流量引导到app内, 并提供连贯的浏览体验, 实在是引流的大杀器.dom
除此以外, deeplink还作高效的流量分发. 经过外部url的投放和内部拦截, 能够针对不一样场景直接分发流量到具体页面, 将用户直接引导到各个垂直频道.测试
ios的appsearch和消息都在努力作, 培养用户, 虽然目前使用量不大, 但的确是比入口堆叠更有效的流量分发方式.google
deeplink分两种, 一种是用户已经安装了你的应用, 直接作连接拦截和跳转. 另外一种是用户没有安装, 须要下载安装, 安装完成后再跳转到具体页面(reserved deeplink). 这两种都有不一样的方案和对应的难点.url
已经安装app的应用, ios8如下可使用URLSchema作url拦截. Android上applink能够解决跳转的问题. 而iOS9以上提供的universal link方案把体验作到了极致, 无需弹窗提示, 直接拦截跳转. 下面重点看看universal link如何作.
建议先看下官方文档
apple为了体验和安全, universal link流程略复杂. 如官方文档提到, 须要在要拦截的http连接根路径下(或者.well-known下)提供一个apple-app-site-association文件, 文件描述了对域名的拦截规则, 格式能够参照google的https://google.com/apple-app-site-association. 这里有几点须要特别注意!
接着须要在app的com.apple.developer.associated-domains文件中添加拦截的域名, 例如.
applinks:map.google.com
最后在UIApplicationDelegate中实现 application:continueUserActivity:restorationHandler: 方法, 完成跳转而且 return YES .参照API文档
若是你照着上面作universal link就生效了, 那么恭喜你, 能够略过这段.
universal link的缺点是—-链路太长, 很差调试. 笔者本着业界良心, 分享下以前解决universal link不生效的小技巧.
相信完成了applink, 可以大幅提高app流量和产品体验. 下回看看如何用户没下载app时如何在安装完再跳转到具体页面.(reserved deeplink). 以及如何把这些技术串起来, 作到完美的体验.