Web端向App端导量神技Deferred DeepLink的实现思路

1.什么是DeepLink
2.什么是Deferred DeepLink
3.Deferred DeepLink的实现思路
img

DeepLink 深度链接

简单的说就是用户点击一个链接,可以直接跳转的app里面的制定页面
使用DeepLink 点击链接-->打开App-->跳转到指定界面
不使用DeepLink 点击链接-->打开App-->只能进入app首页

这项技术在iOS App有新旧两种实现方案

Custom URL Scheme

Universal Links (iOS 9之后)

Universal Links 有许多 Custom URL Scheme不具备的优点
1.不同的App可以定义相同的URL Scheme造成冲突,Universal Links则是由server端决定呼起哪一个app
2.Universal Links本身是一个https地址,可以展示页面,更友好,同时也能被搜索引擎索引
综合这些优点,Universal Links 大有取代前者的趋势。


img

Deferred DeepLink 延迟深度链接

然而以上所说的DeepLink,都建立在用户已经安装了App的前提下。
如果用户没用安装App,则需要引导用户到各种App Store去安装,等到用户安装完毕,打开App时就找不到之前的指定页面了,这条流程就被打断了。

安装之后,再一次引导用户点击链接,重走流程,这种体验显然是接受不了的。
因此,Deferred DeepLink应运而生。要解决的核心问题就是用户匹配,怎么知道现在打开App的用户就是刚才点击链接的那位用户。

常见使用场景:
1.在 Web 和 App 的切换过程中保留上下文。
(比如购物,用户在web浏览哪一件商品,跳转到App端继续浏览。记录登录信息自动登录等等)
2.好友邀请,点击链接即可,无需填写繁琐的邀请码

Deferred DeepLink的实现思路

任何匹配的问题都可以转化到获取唯一标示的问题。
很容易联想到http里面的session和cookies。

但是iOS的沙盒模式,阻断了App之间的数据共享。也就是说App的cookies跟手机浏览器的cookies是分开的,无法互通。

直到iOS 9,Apple开放了SFSafariViewControllerAPI,实现了App和Safari的cookies互通,那么一切问题迎刃而解了。首次启动App的时候,通过一个隐藏的SFSafariViewController访问server,server通过cookies拿到唯一标示sessionID,从而得知用户之前访问过什么商品,进一步跳转到一个 Universal Links,再进一步打开对应的商品详情页,完成了Deferred DeepLink的流程。

具体实现可参考 国外开源的Branch or VKSafariDomainBridge

这个方案仅仅解决了App和Safari之间的互通,手机上还有微信、手百、chrome等等第三方浏览器,并且项目还要支持iOS 9之前的系统版本。

下边讲另外一种方案,暂且叫做模糊匹配。

在用户点击web链接或打开app的时候,尽可能的收集跟设备相关的信息,例如

a.设备屏幕尺寸
b.设备操作系统版本号
c.ip地址
d.访问时间
e.使用的语言 等等

这些信息的每一项都不能作为唯一标示,但是如果把他们组合起来,作为一个集合,配合算法,进行模糊匹配,匹配成功的几率会大大提高。缺点也是显而易见的,也许世界上找不到两片同样的叶子,但是要找两部同样的手机还是挺容易的。匹配成功率取决于匹配策略,需要长期的去打磨匹配算法。

总结起来,两种方案都不是特别完美,与其自己去DIY,不如采用第三方提供Deferred DeepLink解决方案。

国内的有 魔窗 && Deepshare
国外的有 Branch

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,366评论 25 709
  • 引言 最近在做客户端开发的工作中,需要解决一些渠道流量监控的问题。发现在唤醒app的时候涉及到很多这样那样的lin...
    Edie小哪吒阅读 24,660评论 15 45
  • When you support universal links, iOS 9 users can tap a l...
    huanghy阅读 4,099评论 2 5
  • 移动互联时代,很多互联网服务都会同时具备网站以及移动客户端,很多人认为APP的能帮助建立更稳固的用户关系,于是经常...
    zyl04401阅读 44,203评论 17 72
  • 今天早上起来已经六点五十九分 昨天参加完培训后打算让自己满满正能量来着 可是起来后因为太迟没有给熙熙弄早饭就要去参...
    李海玉阅读 150评论 0 0