简介
通过 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 链接请求都访问网络