添加 Android App Links

本文介绍了如何在Android应用中实现AppLinks功能,包括添加URL意图过滤器、处理外部intent以及在网页上设置DigitalAssetLinks。通过GitHubPages搭建支持,用户可以直接从网页链接到应用内的特定内容。

介绍

  Android App Links 是指将用户直接转到 Android 应用内特定内容的 HTTP 网址。Android App Links 可为您的应用带来更多流量,帮助您发现最常用的应用内容,并让用户更轻松地在已安装的应用中查找和分享内容。

一个简单的效果

//TODO 添加视频
我们在网页上输入:http://tobey-r1.github.io/tobey?23
然后效果如下:
在这里插入图片描述
在这里插入图片描述

Android配置

  在Android studio编译器里面顶部的Tools里面的App Links Assistant里面就是给你的app添加link配置的步骤,包括最后的url测试。麻烦点在于如果自己只是研究且测试需要一个网页去支持和app的绑定,这就是下一个流程要说的。Android上面的配置就比较简单了,大概是这样的:
在这里插入图片描述
  按照前面三个步骤来。

Add Url intent filters

在这里插入图片描述
  这里pathPattern就是host之后的匹配内容了,对应上才能link到app上面去。

Add logic to handle the intent

  就是接受外部网页传递的参数intent,data之类的(点击insert code会自动插入到页面上去):

// ATTENTION: This was auto-generated to handle app links.
        val appLinkIntent: Intent = intent
        val appLinkAction: String? = appLinkIntent.action
        val appLinkData: Uri? = appLinkIntent.data
        //简单打印下
        "数据$appLinkData".printLog()
        "action$appLinkAction".printLog()

Associate website

  这步是关键:
在这里插入图片描述
生成的json文件保存到本地之后我们后面要把它放到网页的对应(.well-known)目录下,访问效果如下:
在这里插入图片描述
然后我们点击Link and Verify报错也没关系,因为目前网页上我们还没加上这个json文件呢。

搭建网页支持AppLinks

  需要你有一个GitHub账户即可,我们通过github提供的GitHub Pages功能自己建一个简单的静态链接,以下是我最终搞好的一个可以测试的github项目。静态网址是:https://tobey-r1.github.io/ 效果如下(网上随便找的一个模板):
在这里插入图片描述

对应的Digital Asset Links网址:https://tobey-r1.github.io/.well-known/assetlinks.json运行效果如下:
在这里插入图片描述
然后applink的测试只需要在浏览器里面输入:http://tobey-r1.github.io/tobeyxxx如下:
在这里插入图片描述
  打开我创建的github仓库之后,大致如下:
在这里插入图片描述
开启pages步骤如下:
在这里插入图片描述
最终出现这个visit site说明成功

### ### Android App Links 配置指南 在 Android 应用中配置 App Links 需要完成两个主要部分:在 `AndroidManifest.xml` 中配置 intent filter 以声明应用支持的 URL,以及在网站上发布 `assetlinks.json` 文件以验证应用与网站的所有权关系。 #### 在 AndroidManifest.xml 中配置 intent filter 首先,在 `AndroidManifest.xml` 文件中为指定的 Activity 添加 intent filter,以便 Android 系统能够识别特定的 URL 并将其路由到应用。intent filter 必须包含以下元素: - `<action>`:设置为 `android.intent.action.VIEW`。 - `<category>`:必须包含 `android.intent.category.DEFAULT` 和 `android.intent.category.BROWSABLE`。 - `<data>`:指定 URL 的 scheme(如 `http` 或 `https`)和 host(如 `www.example.com`)。 示例配置如下: ```xml <activity android:name=".MainActivity"> <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="https" android:host="www.example.com" /> </intent-filter> </activity> ``` 上述配置中,`android:autoVerify="true"` 表示系统将在应用安装时自动验证网站所有权,而无需用户手动确认。如果没有设置此属性,用户在首次访问匹配的 URL 时将看到一个选择器对话框,提示他们选择使用哪个应用打开链接 [^4]。 #### 配置 assetlinks.json 文件 在网站上发布 `assetlinks.json` 文件是验证应用与网站所有权关系的关键步骤。该文件必须放置在网站的 `.well-known` 目录下,路径为 `https://www.example.com/.well-known/assetlinks.json`。 `assetlinks.json` 文件的内容应包含以下字段: - `"relation"`:声明应用与网站的关系,通常为 `["delegate_permission/common.handle_all_urls"]`。 - `"target"`:包含应用的包名和签名证书的 SHA-256 指纹。 示例文件内容如下: ```json [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example.myapp", "sha256_cert_fingerprints": ["1A:2B:3C:4D:5E:6F:7A:8B:9C:0D:1E:2F:3A:4B:5C:6D:7E:8F:9A:0B:1C:2D:3E:4F:5A:6B:7C:8D:9E:0F:1A:2B"] } }] ``` 在上述配置中,`"package_name"` 应替换为应用的实际包名,而 `"sha256_cert_fingerprints"` 应使用应用签名证书的 SHA-256 指纹。该指纹可以通过运行以下命令获取: ```bash keytool -list -v -keystore your_keystore_file.jks ``` 一旦 `assetlinks.json` 文件发布到网站上,并且应用中配置了 `android:autoVerify="true"`,Android 系统将在安装应用时自动检查该文件。如果文件中声明的包名和指纹与应用匹配,系统将直接打开应用,而不会显示选择器对话框 [^5]。 #### 验证 App Links 配置 可以通过以下命令验证 App Links 是否配置正确: ```bash adb shell pm get-app-links com.example.myapp ``` 该命令将输出当前设备上应用的 App Links 状态,包括是否已成功验证。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雪の星空朝酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值