AppLink

作者: 杜白白白 | 来源:发表于2020-08-05 19:32 被阅读0次

https://blog.csdn.net/u013651405/article/details/101480278

简介

通过 Link这个单词我们可以看出这个是一种链接,使用此链接可以直接跳转到 APP,常用于应用拉活,跨应用启动,推送通知启动等场景。

流程

在AS 上其实已经有详细的使用步骤解析了,这里给大家普及下

快速点击 shift 两次,输入 APPLink 即可找到 AS 提供的集成教程。

在 AS 中已经有详细的使用步骤了,总共分为 4 步

###add URL intent filters

创建一个 URL

或者也可以点击 “How it works” 按钮

Add logic to handle the intent

选择通过 applink 启动的入口 activity。

点击完成后,AS 会自动在两个地方进行修改,一个是 AndroidManifest

<activity android:name=".TestActivity">

            <intent-filter>

                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <category android:name="android.intent.category.BROWSABLE" />

                <data

                    android:scheme="http"

                    android:host="geyan.getui.com" />

            </intent-filter>

        </activity>

此处多了一个 data,看到这个 data 标签,我们可以大胆的猜测,也许这个 applink 的是一个隐式启动。

另外一个改动点是

    protected void onCreate(@Nullable Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_test);

        // ATTENTION: This was auto-generated to handle app links.

        Intent appLinkIntent = getIntent();

        String appLinkAction = appLinkIntent.getAction();

        Uri appLinkData = appLinkIntent.getData();

    }

applink 的值即为之前配置的 url 链接,此处是为了接收数据用的,不再多说了。

Associate website

这一步最关键了,需要根据 APP 的证书生成一个 json 文件, APP 安装的时候会去联网进行校验。选择你的线上证书,然后点击生成会得到一个 assetlinks.json 的文件,需要把这个文件放到服务器指定的目录下

基于安全原因,这个文件必须通过 SSL 的 GET 请求获取,JSON 格式如下:

[{

  "relation": ["delegate_permission/common.handle_all_urls"],

  "target": {

    "namespace": "android_app",

    "package_name": "com.lenny.myapplication",

    "sha256_cert_fingerprints":

    ["E7:E8:47:2A:E1:BF:63:F7:A3:F8:D1:A5:E1:A3:4A:47:88:0F:B5:F3:EA:68:3F:5C:D8:BC:0B:BA:3E:C2:D2:61"]

  }

}]

sha256_cert_fingerprints 这个参数可以通过 keytool 命令获取,这里不再多说了。

最后把这个文件上传到 你配置的地址/.well-know/statements/json,为了避免今后每个 app 链接请求都访问网络,安卓只会在 app 安装的时候检查这个文件。,如果你能在请求 https://yourdomain.com/.well-known/statements.json 的时候看到这个文件(替换成自己的域名),那么说明服务端的配置是成功的。目前可以通过 http 获得这个文件,但是在M最终版里则只能通过 HTTPS 验证。确保你的 web 站点支持 HTTPS 请求。

若一个host需要配置多个app,assetlinks.json添加多个app的信息。

若一个 app 需要配置多个 host,每个 host 的 .well-known 下都要配置assetlinks.json

有没有想过 url 的后缀是不是一定要写成 /.well-know/statements/json 的?

后续讲原理的时候会涉及到,这里先不细说。

###Test device

最后我们本质仅是拿到一个 URL,大多数的情况下,我们会在 url 中拼接一些参数,比如

https://yourdomain.com/products/123?coupon=save90

1

其中 ./products/123?coupon=save90 是我们之前在第二步填写的 path。

那测试方法多种多样,可以使用通知,也可以使用短信,或者使用 adb 直接模拟,我这边图省事就直接用 adb 模拟了

adb shell am start

-W -a android.intent.action.VIEW

-d "https://yourdomain.com/products/123?coupon=save90"

[包名]

使用这个命令就会自动打开 APP。前提是 yourdomain.com 网站上存在了 web-app 关联文件。

相关文章

  • 测试deeplink 和applink

    链接地址: deeplink applink-http applink-https

  • AppLink

  • AppLink

    https://blog.csdn.net/u013651405/article/details/10148027...

  • AppLink

    简介 大家好!我是Tony,一个热爱技术,希望运用技术改变生活的的追梦男孩。闲话不多说,之前我总结过iOS的Uni...

  • W

    http://www.guguaixia.com/eagle-frontap/jiabei/applink/FM0...

  • Universal link 和 Applink Unity中

    官网地址Applink:'https://developer.android.com/training/app-l...

  • 微信调起第三方APP

    公众号网页 应用宝AppLink,参考文档[https://wiki.open.qq.com/index.php?...

  • Android DeepLink vs AppLink

    一、概念 1. 介绍 DeepLink与AppLink,本质上都是基于Intent框架,使App能够识别并处理来自...

  • Android APPLink的使用

    一.什么是APPLink通过link这个词可以看出这是一种链接。这种链接用于APP,通过指定的 来实现跳转。谷歌从...

  • Google的deepLink和appLink

    此篇文章主要做科普,理解deepLink和appLink主要干了什么。 引言 deep link技术出现的背景,一...

网友评论

      本文标题:AppLink

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