AppLink的简单介绍
AppLink是一种经过验证通过的deepLink,它可以直接唤起app而不会弹出选择框让用户选择,很多同学把AppLink和DeepLink搞混,它们之间的区别如下:

DeepLink Applink
Scheme 自定义 http/https
链接是否经过验证
版本限制 没有 Android 6.0以上
用户体验 可能弹出弹框选择(当手机里有多个应用scheme相同时) 没有弹框选择,直接唤起

AppLink的使用
1.配置AndroidManifest.xml


<activity android:name="你的activity">
    <intent-filter android:autoVerify="true">
        <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" />
        <data android:scheme="https" />
        <data android:host="www.example.com" />
    </intent-filter>
</activity>

2.配置json文件

json文件
[{

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

    "target"``: {

        "namespace"`: "android_app",

        "package_name": "com.my.test", // 包名

        "sha256_cert_fingerprints": ["AD:7D:09:5D:66:8C:39:4C:61:32:C3:47:6B:54:56:21:2D:AB:52:35:FF:4E:6B:1F:8F:D3:D0:E1:49:4E:C9:6B"] //签名

    }

}]

注意只需要修改package_name和sha256_cert_fingerprints,package_name为应用的包名,sha256_cert_fingerprints为应用签名的SHA256格式,可通过下面命令来获取keytool -list -v -keystore 您的keyStore文件

证书指纹:
         MD5:  77:63:F2:E9:EB:FF:9D:6C:84:15:61:BE:4F:08:69:A1
         SHA1: E1:04:A6:87:31:CD:1B:AE:CB:DA:63:C8:46:DD:C3:A4:A6:28:CA:5C
         SHA256: AD:7D:09:5D:66:8C:39:4C:61:32:C3:47:6B:54:56:21:2D:AB:52:35:FF:4E:6B:1F:8F:D3:D0:E1:49:4E:C9:6B

sha256_cert_fingerprints填写的就是SHA256对应的

注意如果使用AndroidStudio进行开发可以使用系统的applink自动配置AndroidManidest和json文件
null

3.将配置json文件传到指定域名的.well-known路径,文件名定义成assetlinks.json, app安装的时候,系统会去访问 [https://www.example.com/.well-known/assetlinks.json] 这个地址读取里面的签名指纹和app进行比对校验,可以看到这个域名就是之前在AndroidManifest中填写的host中填写的。

4.验证AppLink,可使用AndroidStudio 里的App Links Assistant中的Test App Links进行测试或者在短信中输入链接点击测试或者使用命令, adb shell am start -W -a android.intent.action.VIEW -d "https://www.example.com" 如果直接唤起app没有弹窗选择则说明applink验证成功