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

作者: 没梦想的咸鱼2 | 来源:发表于2016-11-20 14:16 被阅读896次
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

相关文章

  • Web端向App端导量神技Deferred DeepLink的实

    1.什么是DeepLink 2.什么是Deferred DeepLink 3.Deferred DeepLink的...

  • [iOS] 跟着大神们学习代码(7)

    目录: Web和客户端如何交互 DeepLink jenkins如何自动打包 Https抓包内容可见控制 KVOC...

  • 移动端

    app Web App Hybird App 移动端页面 设计图 测试 移动端的设置 移动端的布局 弹性 fl...

  • 表格的设计在ui设计使用

    从web端到app端表格迁移,是b端设计中的比较普遍的形式。而且信息量巨大,我们应该怎么做呢。下面我随便举个例子。...

  • 产品功能拆解(2)——App登录

    上一次我们分享了Web端的登录,这次聊一下App端的登录。 与Web端一样的是,App端的登录也分成进入式的和流程...

  • deeplink协议与http协议思考

    DeepLink是一种移动端的通讯协议, 实现了App之间的通讯,能够被android系统解析。App相当于孤岛,...

  • HTML基础

    新的征程 web前端介绍 web前端开发做什么 pc端web开发;移动端web开发;混合app开发;网页游戏/移动...

  • App专项测试要点

    一、App测试与Web测试的区别 Web端特性 首先从系统架构来看的话,web测试只要更新了服务器端,客户端就会同...

  • App专项测试要点

    一、App测试与Web测试的区别 Web端特性 首先从系统架构来看的话,web测试只要更新了服务器端,客户端就会同...

  • 判断浏览器,区分PC和移动

    判断浏览器 区分PC和移动 web端:app.vue app端:app.vue 网站导航 网站导航

网友评论

本文标题:Web端向App端导量神技Deferred DeepLink的实

本文链接:https://www.haomeiwen.com/subject/lgoepttx.html