美文网首页
deeplink 探索

deeplink 探索

作者: 橙子_b9bc | 来源:发表于2022-04-15 18:01 被阅读0次

    一、什么是deeplink?

    Deeplink技术是操作系统本身就有的能力,发展历史已经有很多年了。不同操作系统、不同版本都有着不同版本的Deeplink技术。

    目前移动端 Deeplink 的说法有狭义和广义之分,分为 Deeplink 和 Deferred Deeplink。

    Deeplink:深度链接,指已安装相应 App 的情况下,把特定的参数通过 url 的形式传递给 App,直接打开指定的内部页面,实现从链接直达 App 内部页面的跳转。

    Deferred Deeplink:延迟深度链接,主要增加了一个是否已安装相应 App 的判断,用户点击链接时,如果未安装 App,则引导用户前往应用市场,下载完对应 App 后,首次打开该 App 时自动跳转进入指定的内部页面。

    一般常说的“Deeplink”其实就是这两层含义相结合的简称。

    想在 App 上开发 Deeplink 是需要一些技术支持的,首先要明白,一个 App 想要做到一键拉起 App,必须先满足两个条件:

    1,具备被其他 App 打开的能力(URL Scheme)

    2,具备打开其他 App 的能力(各种设备判断及跳转)

    DeepLink用到的核心技术就是:URL Scheme。不论是IOS还是Android。

    二、URL Scheme

    在iOS 9和安卓 6之前,移动端实现Deeplink的方式都是通过URL Scheme。URL,我们都很清楚,weixin://dl/moments就是一个 URL,也叫它链接或网址;Scheme,表示的是一个 URL 中最初始的位置,即 ://之前的那段字符,例如这个URL中的Scheme就是weixin。我们可以用Scheme 来定位对应的App。例如淘宝的Scheme就是taobao、支付宝的Scheme就是alipay,新浪微博的Scheme是sinaweibo,易车的scheme是bitauto.yicheapp。

    被打开的App可以向操作系统提前注册一个 URL,开头的Scheme 用于从浏览器或其他App中拉起本App。移动操作系统提供解析Scheme的能力,判断Scheme属于哪个App,唤起并将参数传递给App。此外通过指定的 URL 中其他字段(如path等),可以让App在被唤起后直接打开某些特定页面,比如视频详情页、商品详情页、活动详情页等。

    一般来说整段的URL Scheme是这种的形式:Scheme://host:port/path?query=xxxxxxx。其中path代表了想要跳转的指定页面,而query代表了想要传递的参数。

    URL Scheme方式优点是开发简单,但弊端也很明显:

    1,我们只能通过固定协议格式的链接来实现跳转,而且打开H5页面时,会出现一个提示框:“是否打开XXX”。用户确认了才会跳转到App中,增加了用户流程

    2,微信、QQ等把URL Scheme 打开App这种方式给禁了,但是它们都各自维护着一个白名单,如果Scheme不在该白名单内,那么就不能在他们的App内打开这个App(如果被封锁了那么用户只能通过右上角浏览器内打开App)

    3、 Universal link

    Universal link 是苹果公司在2015年推出的新一代Deeplink技术,iOS9及以上的用户可以通过点击一个https 链接无缝的跳转到一个App应用内的指定页面,不需要让用户点击“是否打开xx”。因为少了这个提示框,所以Universal link比URL Scheme方式体验更好,更重要的优势是目前微信和QQ已经支持Universal link这种形式了,因此我们更推荐开发者在iOS端使用这种方式唤起App。

    流程

    App第一次启动、更新版本后第一次启动,都会自动下载 apple-app-site-association 配置文件

     1、下载 - App向工程里配置的域名发起Get请求拉取配置好存放在https服务器上的配置文件
    
     2、 注册 - App将配置文件注册给手机系统
    
     3、命中 - 由任意h5、或其他App发起的跳转url,如果命中了配置文件注册过的通用链接,就打开App
    
     4、没命中 - 直接跳转url链接对应的h5页面
    

    优点:

     1、唯一性: 它使用标准的 https 链接到你的web站点,所以它不会被其它的App所声明。
    
     2、安全: 只有你自己才能上传文件到你网站的根目录,所以你的网站和你的App之间的关联是安全的。iOS会去你的网站上去下载你上传上去的说明文件(这个说明文件声明了你的App可以打开哪些类型的https链接)。
    
     3、 可变: Universal Links本身是一个 https 链接,当用户手机上没有安装你的App的时候也能够工作。此时点击链接会跳转到safari中展示你网页。
    
     4、简单: 一个URL链接,可以同时作用于网站和App。
    
     5、私有: 其它App可以在不需要知道你的App是否安装了的情况下和你的App相互通信
    

    微信目前已支持通过Universal link方式直接打开第三方App,要求SDK版本大于等于1.8.6.1。用户主要需要配置以下几步才能使用正常功能,详情配置步骤可以参照微信Universal link文档:

    (1)首先按照苹果官方文档,配置Universal link。微信对Universal Links配置有以下要求:

    Universal Links必须支持https
    
    Universal Links配置的paths不能带query参数
    
    微信使用Universal Links拉起第三方App时,会在Universal Links末尾拼接路径和参数,因此App配置的paths必须加上通配符/*
    

    (2)然后向微信注册自己的应用id和Universal Links。

    四、 App Link

    2015年5月28日,Google I/O大会上正式推出Android M(android6.0 API级别23),其中新增了一个特性叫AppLinks,它可以加强软件间的关联,可以把触屏端的流量带到移动端来。用户可以点击一个H5链接时直接跳转到 App 指定页面,而不会让用户点击”是否打开xx“。所以App Link比URL Scheme方式体验更好。

    优势

    1、安全且具体: Android App Links使用链接到您拥有的网站域的HTTP URL,因此没有其他应用可以使用您的链接。Android App Links的要求之一是您通过我们的网站关联方法验证您所在域的所有权。

    2、无缝的用户体验:由于Android App Links对您网站和应用中的相同内容使用单个HTTP URL,因此未安装应用程序的用户只需访问您的网站而不是应用程序 - 没有404,没有错误。

    3、Android Instant Apps支持:使用Android Instant Apps,您的用户无需安装即可运行您的Android应用。要为您的Android应用添加即时应用支持,请设置Android应用链接并访问g.co/InstantApps。

    4、通过Google搜索吸引用户:用户可以通过在移动浏览器,Google搜索应用,Android屏幕搜索或Google智能助理中点击Google中的网址,直接在应用中打开特定内容。

    相关文章

      网友评论

          本文标题:deeplink 探索

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