背景

App 需要不断有新用户涌入或者打开才能持续运营,一些内容在网页端体验不好,也有一些功能只有在 App 内才能实现,所以需要通过一些方式将用户引流到 App 里,提升用户粘性和用户体验。

使用场景

  1. 浏览器访问(第三方应用里:微信、QQ、微博)
  2. 短信链接(延伸为什么要用短链:短信按字的数量收费)
  3. 扫描二维码

唤起方式

  1. URL Scheme(IOS、Android)
  2. Universal Link(IOS)
  3. Meta标签(IOS)
  4. Intent(Android)

URL Scheme

URL Scheme 介绍

URL Scheme 是一个可以让app相互之间跳转的对外接口。通过给 APP 定义一个唯一的URL路径,从外部快速的打开这个指定的 APP,每个 App 的 URL Scheme 都是不一样的,如果存在一样的 URL Scheme,那么系统就会响应先安装那个 App 的 URL Scheme,因为后安装的 App的 URL Scheme 会被覆盖掉,是不能被调用的。

URL Scheme 语法

  1. 行为(应用的某个功能)
  2. |
  3. scheme://[path][?query]
  4. | |
  5. 应用标识 功能需要的参数

常见URL Scheme

  1. 微医:wypatient://
  2. 微医生:wydoctor://
  3. 微信: weixin://
  4. 淘宝: taobao://
  5. 支付宝: alipay://
  6. 微博:sinaweibo://

缺点

  1. 无法判断是否安装 App
  2. 每次唤醒都会有确认提示,体验不好
  3. 微信端屏蔽了 URL Scheme,需要配置白名单

Universal Link

Universal Link介绍

**
Universal Link 是苹果在 WWDC2015 上为 iOS9 引入的新功能,通过传统的 HTTP 链接即可打开 APP,如果用户未安装 APP,会跳转到该链接所对应的页面。

配置流程

**

  1. 创建一个包含 json 数据的 apple-app-site-association 文件
  2. 把 apple-app-site-association 文件上传到服务器的根目录
  3. 在 App 工程里配置通用链接,苹果开发者后台做相应配置

JSON格式如下

  1. {
  2. "applinks": {
  3. "apps": [],
  4. "details": [
  5. {
  6. "appID": "8F3KT864KL.com.lvxian.guahao",
  7. "paths": ["/app/links"]
  8. }
  9. ]
  10. }
  11. }

Universal Link的运作流程

**

  1. 下载或更新后APP第一次启动
  2. APP向工程里配置的域名发起Get请求拉取 apple-app-site-association Json 内容
  3. APP 将 apple-app-site-association 注册给系统
  4. 发起 URL 访问,如果命中了apple-app-site-association 注册过的通用链接
  5. 触发 Universal Link,打开 App
  6. 没命中,继续跳转 URL

唤醒实践

上面的每一种方式都不能完美的解决,要么只有 IOS 或 Android 支持,要么体验不是很好,所以需要结合多种方式。

  1. URL Scheme + Universal Link

image.png

唤醒流程

IOS 访问通用链接,如果安装 App,通过 Universal Link 直接唤醒 App,没有安装则跳到中间页唤醒 App,
Android 访问通用链接,直接跳到中间页去唤醒 App。

微信里唤醒指南

微信里封杀了第三方的 Scheme,IOS 可以通过 Universal Link 唤醒 App,
Android 需要通过微下载(应用宝)链接唤醒 App

微下载链接说明

http://a.app.qq.com/o/simple.jsp?pkgname=com.greenline.guahao&android_schema=wypatient%3A%2F%2FWYCommunity%2FpostCommonEditor

参数 说明
pkaname APP 在应用宝的标识
android_schema App 里的 Schema,需要encode